• ベストアンサー

なぜ「Workbook」ではなく「Workbook

nak777rの回答

  • ベストアンサー
  • nak777r
  • ベストアンサー率36% (49/136)
回答No.3

■Application クラス ・EXCEL本体の親ウインドウ側のクラス ・主なプロパティとして Caption EXCEL本体のタイトルバーの文字列 Visible EXCEL本体を表示/非表示 TOP,LEFT,WIDTH,HEIGHT EXCEL本体の位置や大きさを変更する Workbooks EXCEL 本体で開いている ブック(複数)のリスト ■Workbooks クラス ・Workbook クラスのコレクションクラス ・EXCEL を親ウインドウとして ブック(workbook)を複数開く事が出来るためそのリストクラス ・主なプロパティ、メソッドとして Add 新たなブックを表示する Open ブックを開く Item Workbook を選択する Application 親元の EXCEL ■Workbook クラス ・Workbook ブックのクラス ・主なプロパティ、メソッドとして Save ブックを保存する Application 親元の EXCEL WorkSheets  ブック内にあるシート(複数)のリスト ■WorkSheets クラス ・WorkSheet クラスのコレクションクラス ・主なプロパティ、メソッドとして Add 新たなシートを作成する Item WorkSheet を選択する Application 親元の EXCEL ■WorkSheet クラス ・WorkSheet シートのクラス ・主なプロパティ、メソッドとして Range 各セル単位のクラス Application 親元の EXCEL だいたいのEXCELクラスの位置づけ(雰囲気)はこんな感じ

i98iu787
質問者

お礼

参考になりました。ありがとうございます。

関連するQ&A

  • workbookオブジェクトのクリアについて

    下記のコードはtest.xlsxを開き、ABCにセットして、開いたtest.xlsxを閉じた後、 ABCを参照しようとするコードです。 しかし、(4)でオートメーションエラーが発生します。 (3)のtest.xlsxを閉じるコードを 削除した場合うまくいきます。 開いたtest.xlsxを閉じた場合はABCにセットしたtest.xlsxもクリアされてしまうものなのでしょうか? 私のオブジェクトの認識では、エクセルファイルをオブジェクトにセットした場合はセット元のエクセルファイルは閉じてもworkbookオブジェクトのABCに保持されていると思っています。 ※test.xlsxを閉じたい理由は以降のコードで同名ファイルを開きたいからです。 よろしくお願い致します。 Sub a() Dim ABC As Workbook Workbooks.Open (ThisWorkbook.Path & "\" & "test.xlsx") '(1) Set ABC = Workbooks("test.xlsx") '(2) Workbooks("test.xlsx").Close savechanges:=False '(3) ThisWorkbook.Worksheets("Sheet1").Range("A1").Value = ABC.Worksheets("Sheet1").Range("A1").Value '(4) End Sub

  • 別のプログラムとして開いたエクセルをVBAコードでアクティブにする方法について

    すいません、エクセルVBAのことで質問があります。 使っているのはExcel2000です。 1 エクセルブック"A"を開く 2 当方で使用している業務用のアプリケーションを使いデータをエクセル形式で搬出   ⇒"AAA"とは別のエクセルプログラムとして"BooK1"が開かれる このとき、ブック"A"のVBAコードに Workbooks("Book1").Activate と記載しても実行時エラーとなってしまいます。 別のエクセルプログラムで開いたブックを指定してアクティブにするにはどのようなVBAコードを記載したらよろしいのでしょうか。 同じプログラムとして開ければ問題ないのでしょうが、 当方で使っているアプリケーションですと、データを搬出するときには必ず別のプログラムとしてブックが開かれてしまう模様で どうにも回避できません。 どうぞよろしくご教示願います。

  • WorkbookのCopyについて

    Workbookのコピーについて教えてください。 下記のマクロにセル内の数式もコピーしたいのですが、出来ないで困ってます。 値と数式をコピーする、マクロを入れると指定した範囲にコピーされません。 Sub CopyWorkbookToWorkbook() Windows("sheet2.xls").Activate Workbooks.Open Filename:="D:\book1.xls" Workbooks("book1.xls").Worksheets("sheet1").Range("A6:k1000").Copy Workbooks("book2.xls").Worksheets("sheet1").Range("A6").PasteSpecial    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks :=False,Transpose:=False          Workbooks("book1.xls").Close End Sub よろしくお願いします。

  • VBAの「This Workbook」について

    VBAの「This Workbook」にコードを書くことについて教えて下さい。 ここにコードを書きと、例えばどんな便利な機能があるのでしょうか? よろしくお願いします。 私は下記の意味はだいだいわかります。 Private Sub Workbook_BeforeClose(Cancel As Boolean) Private Sub Workbook_Open()

  • VBAでエクセルからエクセルのファイルを開くには?

    D:\に db1.mdb Book1.xls があります。 db1.mdbのフォームのコマンドボタンをクリックして Book1.xlsを開きたいのですが VBAコードをご教授いただけますか? (マクロではなくVBAコードが知りたいです) エクセルからエクセルのファイルを開くなら Workbooks.Open ファイルのフルパス で出来ました。 ご回答よろしくお願いします。

  • Excelのworkbookの各sheetを分割

    Excelのworkbookの各sheetをそれぞれ単独のworkbookにばらかすVBAを教えて下さい。

  • アクセスでApplication.Caption

    アクセスでApplication.Captionに代わるコードはありますか? エクセルでなら Sub test01() Debug.Print Application.Caption End Sub は動きますが、アクセスだとコンパイルエラーになります。 CaptionがApplicationのメンバにないからだと思います。 いくつかのアプリケーションを跨いでVBAを動かしているのですが、 アクセスで自身のアプリケーション名、もしくはファイル名を取得するコードはありますか? ご回答よろしくお願いします。

  • VBA-Workbook_Open()イベントで

    再度、お世話になります。 手順1.book1よりボタンをクリックしてbook2を開く 手順2.あるフォルダの.xlsファイル名をボタン名に貼り付ける 手順3.book2の戻るボタンでbook2を閉じ、book1を開く 手順4.手順1を実行する という流れを行ったところ1回目のbook2の表示の際にはうまくファイル名を表示できるのですが、戻った後の2回目のbook2の表示ではファイル名が1回目のときのままになってしまいます。 一部 [book2での処理] ***Module1*** Public strPath as String ***ThisWorkbook*** Public Sub Workbook_Open() strPath = "C:\" & Worksheets("Sheet1").Range("A1") myName = Dir(strPath & "\*.xls", vbDirectory) If myName <> "" Then FCnt = FCnt + 1 Worksheets("Sheet1").OLEObjects("btn" & FCnt).Object.Caption = myName Do ・・・(略) Loop End If End Sub ***Sheet1*** Private Sub btnBack_Click() Workbooks.Open Filename:="C:\book1.xls" Workbooks("book2.xls").Close saveChanges:=False End Sub のようにしています。 お手数をおかけしますが、どなたかご教授お願いいたします。

  • VBA 新規にエクセルを開き既存のファイルを開く

    VBAで新規にエクセルのアプリケーションを起動し、 その中に既存のファイルを起動する方法は有りますか? Sub Sample() Dim appExcel As Excel.Application Dim WSH As Variant Dim strPath As String Set appExcel = New Excel.Application Set WSH = CreateObject("Wscript.Shell") strPath = ActiveWorkbook.Path With appExcel .Visible = True .Workbooks.Add .ActiveWorkbook.SaveAs (strPath & "\ test.xls") End With Set WSH = Nothing End Sub このコードは、ネットから拾ったサンプルコードなのですが 新しいアプリケーションでエクセルを立ち上げることはできたのですが 新規のブックが開いてしまい、 更に、開きたいファイルに上書き保存してしまいそうです。 新規のブックが開く原因は .Workbooks.Addで、 上書き保存する原因は .ActiveWorkbook.SaveAs だとわかってるのですが、 この部分を同変更すればいいのかがわかりません。 Workbooks.Open?Filename:="C:\Users\test.xlsx" だと、現在実行しているvbaファイルを同じ枠内で 該当のファイルが開いてしまいます。

  • ExcelVBAでのページ設定

    ExcelVBAで、新しいブックを開き、そのページ設定をしたく、以下のような記述をしたのですが、余白の値が変わりません。 Private Sub Workbook_Open() Workbooks.Add With ActiveSheet.PageSetup .TopMargin = Application.CentimetersToPoints(1.7) .BottomMargin = Application.CentimetersToPoints(1.7) .LeftMargin = Application.CentimetersToPoints(0.9) .RightMargin = Application.CentimetersToPoints(1.1) .HeaderMargin = Application.CentimetersToPoints(1.3) .FooterMargin = Application.CentimetersToPoints(1.3) End With (以下省略) Workbooks.Addを記述せず、新しいをブックを開かなければ、思い通りの動作をします。 外部ファイルを読み込んで、帳票を作るVBAなので、起動時に新しいブックを開きページ設定をしたいのですが、Workbook_Open()で、このような使い方は出来ないのでしょうか? よろしくお願いします。 尚、会社のLANからgooの閲覧が規制されており、返事が遅れるかもしれません。ご理解の程、お願いします。