• ベストアンサー

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

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

  • sprit
  • お礼率66% (45/68)

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答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/17068)
回答No.1

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

sprit
質問者

お礼

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

関連するQ&A

  • VBから、エクセルでファイルを開くには・・・

    またまた、お世話になりますm(__)m 環境はVB.net2003、エクセルは2002でプログラミングの勉強、データ処理をしているのですが、VBでエクセルを開き、そのエクセル上でファイル(csvやテキストなど)を開きたいのですが、VB上でどのように書けばよいのでしょうか? VBでエクセルをたちあげたり、bookやsheetを開くことはできました。 どなたかご教授お願いしますm(__)m

  • VBからExcel上の処理をするプログラムを作成しています。

    VB初心者です。 今、VBの画面からExcelを起動させて、一連の処理をした後、 またVBの画面に自動的に戻るようなプログラムを作成しようとしているのですが、 Excelのシートを削除する時に、ダイアログボックスが開いてしまい、そこで処理が止まってしまいます。 ダイアログボックスを開かないようにするとか、自動的にOKボタンを押したことにするとか、 何か方法があったら教えてください。

  • VBAからEXCELの新規ファイルを作成する

    VB6.0 Excel2000を使用しています。 VBAからEXCELファイルを参照する方法は前回教えていただきましたが 新規にEXCELファイルを作成する方法がわからないので教えてください。 【やりたいこと】 ・ファイル名は、ダイアログボックスから入力され、フルパスで変数に  格納されています。 ・シート名は固定文字で指定します。 (↑ここまではできています) (↓ここからわかりません) ・セルの内容を編集したあと、指定のファイル名・シート名で保存したい よろしくお願いします。

  • VB.NET Excelファイル読み込み

    VB初心者です。 VB.NETでExcelファイルを読み込みたいんですが、実行する端末にExcelがインストールされていなくても可能ですか? また、その読み込み方法を教えて頂きたいです。(もしくは参考サイト) お願いします><

  • VB.NETによるEXCELの行挿入

    VB.NET 2005/XP(sp2)/Excel2003(sp2) 上記の環境で開発しておる者です。 VB.NETでExcelを操作するプログラムを作ろうといています。 内容は雛形Sheetの行(複数行)をコピーして、新しく作成したSheetに貼り付ける処理をしたいのですが、手法がわかりません…。 Excel起動・新しいSheetの作成・Excelの保存はなんとかできましたが、行コピーとコピーした行の挿入部分のサンプルが御座いましたら、どなたか、教えて頂けないでしょうか? よろしくお願い致します。

  • VB.NET EXCEL操作でのマクロ存在判定方法

    VB.NET(VS2005)でのEXCEL操作において、 そのEXCELファイルにマクロが含まれているかどうかを判断することは可能でしょうか? 何か方法があれば教えてください。 (指定したEXCELファイルを開いて印刷処理などをしたいのですが、  マクロがあるとエラーになったりと様々な問題が出てきます。  初めに、そのEXCELファイルにマクロがあるか判断し、  存在する場合は操作しないようにしたいと思っています。) どうぞよろしくおねがいします。

  • EXCEL VBAから、VBのフォームを開くためには?

    EXCEL VBAからVBへプログラムを移そうと努力しています。 そこで、エクセルのシートのコマンドボタンを押すと、 VBで作成したフォームが開き、そこからEXCELの処理を させたいと考えています。 VBからエクセルの処理は Excel.Application のあたりをつかうことでなんとかなりそうなんですが その逆がわからず行き詰まっています。 EXCELは2000 VBは6.0 です ご存じの方、よろしくお願いします。

  • VBまたはVCからExcelファイルを生成したい

    VBまたはVC(VBAは不可)を使ってExcelファイルを生成する方法を紹介しているwebページを探しています。 作成したいExcelファイルというのは、txtでもcsvでもなく、拡張子xlsのファイルです。 任意のセルへ対するデータ設定やシートの追加・名前変更などの操作を行いたいです。 どなたかご存知でしたら、ご教授お願いいたします。

  • VB.NETを使って、Visual SourceSafeのアーカイブファイルの作成を自動化するには

    いつもお世話になっております。 VSSを日時バッチによりバックアップを行うように しようとしています。 その際に、VSSのAdministratorのメニューバーの ところにある[アーカイブ] からアーカイブファイルを タスクにより自動で作成して、作成されたファイルで バックアップをとろうと考えています。 しかし、このアーカイブファイルを自動で作成するには どのようにしたらよいかがわかりません。 マイクロソフトのMSDNライブラリの 「VB.NETを使ってExcelファイルの自動化をする」 といったところを参考にしているのですが、 そこのサンプルソースがどのようなことを行って いるのか理解できずにお手上げ状態になってしまいました。 VB.NETまたはC#などを使って、Visual SourceSafeのアーカイブファイルの作成を自動化できる方法、又は 参考になるサイトなどをご存知なかたがいらっしゃいましたら、アドバイスをいただけないでしょうか? お手数をおかけいたしますが、よろしくお願いいたします。

  • VBでExcelファイルの編集

    VBでExcelファイルを作成しようとしていますが、罫線を引くとき、Rangeで範囲を指定しているんですが矩形でかかれず、一本線だけが書かれてしまいます。 どうしたら四角く矩形で罫線が書かれるか教えてください。 Set objExcel = CreateObject("Excel.Application") 'エクセルオブジェクト作成 objExcel.Visible = False 'エクセルを非表示で objExcel.Workbooks.Add '新規に作る With objExcel.Sheets("Sheet1").Range("a19:k29").Borders(1) .LineStyle = xlContinuous .Weight = 4 .ColorIndex = xlAutomatic End With

専門家に質問してみよう