[リストへもどる]
一括表示

投稿時間:2002/11/26(Tue) 11:24
投稿者名:mm
Eメール:
URL :
タイトル:
VBからCSV印刷
はじめまして。

今、VBからエクセルでCSVファイルを印刷するPGを作っているのですが、
どうしても余白の設定と、一行挿入の方法がわかりません。

どなたか教えてください。お願いします。

投稿時間:2002/11/26(Tue) 11:35
投稿者名:とろ
Eメール:
URL :
タイトル:
Re: VBからCSV印刷
> 今、VBからエクセルでCSVファイルを印刷するPGを作っているのですが、
> どうしても余白の設定と、一行挿入の方法がわかりません。

マクロの記録を使ってみて下さい。

投稿時間:2002/11/26(Tue) 12:49
投稿者名:mm
Eメール:
URL :
タイトル:
Re^2: VBからCSV印刷
> マクロの記録を使ってみて下さい。

返答ありがとうございます。
マクロの記録を使ったところ
    Rows("1:1").Select
    Selection.Insert Shift:=xlDown
となったのですが、これをそのまま使おうとしたところ
エラーで落ちてしまいました・・・

投稿時間:2002/11/26(Tue) 13:01
投稿者名:秋風
Eメール:
URL :
タイトル:
Re^3: VBからCSV印刷
>Rows("1:1").Select
 の前にオブジェクトを付けないとエラーになります。
    

投稿時間:2002/11/26(Tue) 13:01
投稿者名:秋風
Eメール:
URL :
タイトル:
Re^3: VBからCSV印刷
 オブジェクトを付けないとエラーになります。
    

投稿時間:2002/11/26(Tue) 13:08
投稿者名:mm
Eメール:
URL :
タイトル:
Re^4: VBからCSV印刷
>  オブジェクトを付けないとエラーになります。

エラーで「オブジェクトをサポートしていません」となるのですが・・・

投稿時間:2002/11/26(Tue) 13:18
投稿者名:とろ
Eメール:
URL :
タイトル:
Re^5: VBからCSV印刷
> > オブジェクトを付けないとエラーになります。
> エラーで「オブジェクトをサポートしていません」となるのですが・・・

オブジェクトって、何を付けたのか疑問ですが、

xlSheet.Rows("1:1").Insert xlDown

こんな感じで良いのでは?

投稿時間:2002/11/26(Tue) 13:21
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^5: VBからCSV印刷
一度ここの Excel & Word関係 を見ておいて下さい。

投稿時間:2002/11/26(Tue) 13:21
投稿者名:mm
Eメール:
URL :
タイトル:
Re^4: VBからCSV印刷
ちなみに今書いているソースはこんな感じです。

Private Sub DataPrint()
    Dim objExcelApp   As Object
    Dim strExcelFile As String
    Dim strExcelSheet As String

    'エクセルのファイル名
    strExcelFile = "C:\WINDOWS\デスクトップ\Book1.csv"
    'ブックのシート名
    strExcelSheet = "Book1"
    'エクセルへ参照
    Set objExcelApp = CreateObject(strExcelFile)
    
    With objExcelApp.Worksheets(strExcelSheet)
        '列の幅を設定
        .Range("C1", "X1").ColumnWidth = 5.75
    End With

    objExcelApp.Rows("1:1").Select
    Selection.Insert Shift:=xlDown
    
    'シートの印刷設定
    With objExcelApp.Worksheets(strExcelSheet).PageSetup
        .PaperSize = xlPaperA4      '用紙サイズをA4
        '印刷の向き  横=xlLandscape   縦 = xlPortrait
        .Orientation = xlLandscape
        '各余白をセンチ(Cm)単位で設定
        ' 注意    ↓Application でも参照できるが開放されない
        .LeftMargin = objExcelApp.CentimetersToPoints(2)
        .RightMargin = objExcelApp.CentimetersToPoints(2)
        .TopMargin = objExcelApp.CentimetersToPoints(2.5)
        .BottomMargin = objExcelApp.CentimetersToPoints(2.5)
        .HeaderMargin = objExcelApp.CentimetersToPoints(1)
        .FooterMargin = objExcelApp.CentimetersToPoints(1)
    End With

    'CSV印刷
    objExcelApp.Worksheets("Book1").PrintOut

    'Excelのウインドウ(Book)を表示する
    objExcelApp.Windows(1).Visible = True

    'エクセルの終了
    objExcelApp.Application.Quit

    'オブジェクトを開放
    Set objExcelApp = Nothing

End Sub
  

投稿時間:2002/11/26(Tue) 13:56
投稿者名:秋風
Eメール:
URL :
タイトル:
Re^5: VBからCSV印刷
きちんとExcelは開いているのでしょうか?
はなちゃんさんが返答した通り、Excel & Word関係
を参考に作成した方がよろしいかと思います。
 後、Select使用しなくてもできるのではないかと
思いますが。どこかのHPに使用しない方が・・・と
書いてあった気もします(^_^;)

投稿時間:2002/11/26(Tue) 14:06
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^5: VBからCSV印刷
これで一度試して見て下さい。

Private Sub DataPrint()
    Dim xlApp    As Excel.Application
    Dim xlBook   As Excel.Workbook
    Dim xlSheet  As Excel.Worksheet
    Set xlApp = CreateObject("Excel.Application")
    Set xlBook = xlApp.Workbooks.Open("C:\WINDOWS\デスクトップ\Book1.csv")
    Set xlSheet = xlBook.Worksheets(1)
    
    '列の幅を設定
    xlSheet.Range("C1", "X1").ColumnWidth = 5.75
    
    'シートの印刷設定
    With xlSheet.PageSetup
        .PaperSize = xlPaperA4      '用紙サイズをA4
        '印刷の向き  横=xlLandscape   縦 = xlPortrait
        .Orientation = xlLandscape
        '各余白をセンチ(Cm)単位で設定
        ' 注意    ↓Application でも参照できるが開放されない
        .LeftMargin = xlApp.CentimetersToPoints(2)
        .RightMargin = xlApp.CentimetersToPoints(2)
        .TopMargin = xlApp.CentimetersToPoints(2.5)
        .BottomMargin = xlApp.CentimetersToPoints(2.5)
        .HeaderMargin = xlApp.CentimetersToPoints(1)
        .FooterMargin = xlApp.CentimetersToPoints(1)
    End With

    'CSV印刷
    xlSheet.PrintOut


    'Excelのウインドウ(Book)を表示する
    xlApp.Visible = True
    
    'エクセルの終了
    xlApp.Quit

    'オブジェクトを開放
    Set xlSheet = Nothing
    Set xlBook = Nothing
    Set xlApp = Nothing
End Sub

投稿時間:2002/11/26(Tue) 14:14
投稿者名:秋風
Eメール:
URL :
タイトル:
Re^6: VBからCSV印刷
>     Set xlApp = CreateObject("Excel.Application")

もし、参照設定にチェックがあるのでしたら、
Set xlApp = New Excel.Application
の方が良いと以前教えてもらいました。
(アーリーバインディングとレイトバインディングの違い)

投稿時間:2002/11/26(Tue) 15:17
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^7: VBからCSV印刷
> >     Set xlApp = CreateObject("Excel.Application")
>
> もし、参照設定にチェックがあるのでしたら、
> Set xlApp = New Excel.Application
> の方が良いと以前教えてもらいました。
> (アーリーバインディングとレイトバインディングの違い)

どちらもアーリーバインディング(事前バインディング)です。

投稿時間:2002/11/26(Tue) 15:20
投稿者名:秋風
Eメール:
URL :
タイトル:
Re^8: VBからCSV印刷
> どちらもアーリーバインディング(事前バインディング)です。
 あっそうなのでしたか。勘違いをしておりました。
ご指摘ありがとうございます。m(_ _)m

投稿時間:2002/11/26(Tue) 15:50
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^9: VBからCSV印刷
但し、mmさんのサンプルは、レイトバインディングになります。

私は、そのように理解しております。

投稿時間:2002/11/26(Tue) 17:23
投稿者名:mm
Eメール:
URL :
タイトル:
Re^9: VBからCSV印刷
皆さんどうもありがとうございました。
やっと解決できました。

ついでにと言っては何ですが、
CSVファイルへ出力を  Write # でやっているんですが、
2回目CSVファイルを読んだとき 文字列に "  がついてきます。
これを普通の文字だけ出力する方法ってありますか?

投稿時間:2002/11/26(Tue) 17:41
投稿者名:nobu
Eメール:
URL :
タイトル:
Re^10: VBからCSV印刷
> CSVファイルへ出力を  Write # でやっているんですが、
> 2回目CSVファイルを読んだとき 文字列に "  がついてきます。
> これを普通の文字だけ出力する方法ってありますか?

Line Input文では無く Input 文で各変数毎に読み込んで下さい。
Line Input文で読み込んだのならSplit文で分割するとか...。

投稿時間:2002/11/26(Tue) 18:57
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^10: VBからCSV印刷
ちゃんとレスがついているのにマルチポストはやめて下さい。
その労力分を自分で調べるようにして下さい。(よく見て)
ここのHPに載っていますよ!