• ベストアンサー

VBからエクセルファイル作成

VBでエクセルファイルを作成する処理を作っていて、ファイルは作成されるのですが、自動的にシートが3シート作られます。 作成時にシート数を指定することはできるのでしょうか? ネットでいろいろ調べるのですが、VBからのエクセル操作について書かれているサイトがあまりみつかりません。 よいサイトがありましたら、あわせて教えてください。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

#1です。#1ではちょっと素っ気無いので、実例を1つ Sub main() Dim objxls As Object Dim srtFNM As String srtFNM = "c:\My Documents\aaa14.xls" '←開くエクセルのファイル名をフルパスで指定 Set objxls = CreateObject("excel.application") '←エクセルを起動 objxls.Application.Visible = True '←アプリケーションの表示 objxls.Workbooks.Open (srtFNM) '←指定したエクセルファイルを開く AppActivate objxls '←エクセルをアクティブにする objxls.ActiveWorkbook.worksheets("sheet1").range("a1") = "aaa" Set sh1 = objxls.ActiveWorkbook.worksheets("sheet1") sh1.range("b2:D5").interior.colorindex = 6 End Sub をVBで実行してみたら、A1セルにaaaが入り、セルに色がつきました。 すなわち、要点はエクセルのObjectをいかに捉えるか(表現したら良いか)が、肝心のようです。 またSaveしたりして、最後にNothingを忘れずに。

sprit
質問者

お礼

ありがとうございます。おかげさまで、だいぶ感じがつかめてきました。他の処理と平行して作っているので、まだ完成には至っていないのですが、無事、完成できそうです^^

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.1

>ファイルは作成されるのですが、自動的にシートが3シート作られます。作成時にシート数を指定することはできるのでしょうか? Sub test01() Application.SheetsInNewWorkbook = 3 End Sub では無いですか。ツール-オプション-全般-新しいブックのシート数では。 >VBからのエクセル操作について書かれているサイトがあまりみつかりません 私は素人ですが、この発想がおかしいと思います。 VBからエクセルの世界に入ってしまえば、エクセルVBAの解説書に載っているコードが使えるはずです。 詳しくないですが、MicrofoftExcel9.0ObjectRibraryを利用することにヒントがあるのではないでしょうか。

sprit
質問者

お礼

どうも私は応用がきかなくて...。「VBからエクセルの世界に入ってしまえば..」と言われてみて「あ、そうか!!」と目からうろこでした^^;ありがとうございました。