• ベストアンサー

エクセルのブックはVBAでオブジェクトと言うことは

VBAでアクセスではフォームの事をオブジェクトと言いますが エクセルのブックはVBAでオブジェクトと言うことはありますか?

  • bmgjtu
  • お礼率99% (478/479)

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

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

あります。 VBAでも使うほうは「クラス」というのは余りそこまで使われないが、MSのエクセル開発段階では、使われていると思う。クラスが実メモリーの中に実現したものがオブジェクトだ。あるいはそういう考えをオブジェクト指向と言ったりする。そしてどちらかというと、実行時に画面などで見えるものをいう場合(コントロールやフォーム)が多いが、そうで無いのもある。VB.NET系になると、勉強する場合に逃げられない事項になる。 ブックはプロパティやメソッドがあり、階層的にはApplication-Workbook(Addin、Debug、Window,以下略)のようだ、 これを系統立てて説明している(市販本は初心者向けが多いし)解説書は余りない。意識しなくても、そこそこVBAは組めるから。とりあえず、今後出てくる記述など気をつけて、勉強課題ということで、先に進むべきと思う。 質問者はもっとVBAについて知らなければならないことが多々あるレベルだろうと思う。またプログラムの処理ロジックについて経験を積む必要が(推測だが)たくさんあると思うので。

bmgjtu
質問者

お礼

ありがとうございました。

その他の回答 (1)

  • Siegrune
  • ベストアンサー率35% (316/895)
回答No.2

みんな大抵省略して cells(1,"A").value や sheets("ABC").cells(1,"A").value と書きますけど workbooks("book1.xls").sheets("ABC").cells(1,"A").value と書く方法もあり (別のbookに値を代入するときとかは、 workbooks("book1.xls").activate sheets("ABC").cells(1,"A").value と2行書かずに実行できる。) このときworkbooks("book1.xls")はオブジェクトとして扱われていることがわかると思います。 なお、余談ですが、workbooks("book1.xls")は必ずしもディスク上に書き込まれたxlsファイルを 意味するものではなく、EXCEL上に開かれたファイルを意味していますが。 (EXCEL上は変更されますが保存しなければディスク上のファイルは変更されません。)

bmgjtu
質問者

お礼

ありがとうございました。

関連するQ&A

  • エクセルVBA ブックを閉じるときに・・・

    エクセルVBAで、ブックを閉じるときに、 「変更を保存しますか?」ダイアログを出さずに閉じたいのです。 保存はしたくないので、そのまま単純に保存しないで閉じてくれればいいのですが・・・ そんな事は出来ますでしょうか?

  • VBAで複数のオブジェクトを同時に解放するためには

    Excel2003です。 あるExcelブック内にある複数のVBAオブジェクトを同時に解放したいのですが、 どうやってもオブジェクトを一つしか選択することが出来ません。 たくさんあるとかなり手間がかかってしまいます。 まさか、VBAの解放を行うためのプログラムをVBAで書かなければ出来ないのでしょうか?

  • エクセルVBA ユーザーフォームをオブジェクトとしてセットする書き方?

    いつもご回答頂きありがとうございます。 エクセルVBAでユーザーフォームをオブジェクト変数として セットする書き方を教えていただけないでしょうか? エクセルVBAでAファイルとBファイルがあり AファイルのVBAからBファイルを開いて、データを取得し Aファイルに記入していく。と言うVBAを作成しました。 ただ、BファイルにはopenイベントでBファイルに作成された ユーザーフォームがloadされるようになっていて、 AファイルからBファイルを開けたとき、そのユーザーフォームを 消したいのですが、消す方法が分かりません。 AファイルからBファイルをopenメソッドを用いたあと、ユーザー フォームを消せばいいと思うのですが、書き方が分からず困って おります。 オブジェクトとしてセットして、そのオブジェクトをunloadすれば いいかな?とか思っているのですが、セットの仕方もわからず、、、 宜しくお願いいたします。 それぞれのファイル名を「ファイルA」、「ファイルB」、 ユーザーフォーム名を「UserFormB」としたとき、どのように 書けばよろしいでしょうか?

  • エクセルでユーザーフォームをvbaで作る

    アクセスでフォームをvbaで作る時はCreateFormメソッドで出来ましたが エクセルでユーザーフォームを作る場合はどうすればいいですか? エクセルのオブジェクトブラウザでMSFormsライブラリでCreateで検索しても何もヒットしないことから Createじゃないメソッドで行うと思うのですがどのメソッドでしょうか?

  • エクセルVBAでブック間のコピーをしたい。

    エクセルVBAでブック間のコピーをしたい。 エクセルのVBA初心者です。 複数のブックが開いている時(ブックA,B,C...)に、今選択しているブックAのあるセルを、直前に選んでいたブックBやC(そのつど変わります)にコピーする方法は有りますでしょうか? どなたか教えて下さい。

  • エクセルVBA ハイパーリンクを別ブックに

    皆さんこんにちは。 エクセル2013使用のVBA初心者です。 ふと「出来るのかな?」と思ったことを質問しておりますので とんちんかんな内容でしたらごめんなさいです。 現在book1.xlsmのユーザーフォームで記入した内容を book2.xlsxの特定のセルに反映させるマクロがあります。 book2にハイパーリンクを施してデータが格納してあるフォルダーに 飛ぶようにしたいのですが 直接book2に個人個人が記入すると誤ってデータを消されてしまう可能性があるので 出来るだけbook2は閲覧とハイパーリンクをクリックするのみにしたいのです。 book1のユーザーフォームに (1)ハイパーリンク先を指定するテキストボックスのようなものを設ける (2)book2の特定のセルに(1)で記入したハイパーリンクを反映させる という事は可能ですか?

  • エクセルのVBAで新しくブックを開いた上でさらに…

    エクセルのVBAで新しくブックを開いた上でそのブックにVBAを埋め込む事はできますか? 分かりにくいと思うので具体的にかきます。 今、ブック1にコマンドボタンAがあり、このボタンAを押す事により 以下の2つを実現したいです。 (1)あたらしくブック2を開きます。 (2)更にこのブック2のシートにはコマンドボタンBができており (3)このボタンBの機能としてこのボタンBを押すと  ブック2のセルA1に数字1が入ります ブック2が開いた後で自分で、コマンドボタンBのマクロをブック2のモジュール内に書くのは簡単ですが、ブック1のコマンドボタンAを押したときに自動的にブック2のマクロを書き込みたいのです。 今、ボタンAを押すことで(1)と(2)まではできるのですが (3)のやり方がわかりません。 そもそもこういった事はできないのでしょうか? ご存知の人がいたら教えてください。よろしくお願いします。

  • エクセルのオブジェクト

    エクセル2000を使っています。 1つのブックに複数のシートがあります。 各シートにはオブジェクトが3個あり、 そのオブジェクトをまとめて消す方法がありましたら ぜひ教えてください。

  • Excel VBA でPictureBoxオブジェクトの取得

    Excel VBA では、標準でImageBoxオブジェクトがありますが、これではなくVisualBasicのPictureBoxで持っている機能が使いたいのです。ExcelのUserFormにPictureBoxオブジェクトを貼り付ける方法があれば、教えて下さい。

  • EXCEL VBAでオブジェクトを削除するには?

    EXCEL2000を使用しています。 HPからコピーした表を利用して、VBAで加工したいと思っています。 HPからコピーした場合、不要なオブジェクトがある為、まずこれを消したいのです。 EXCELでの一般的な方法としては、オブジェクトの選択をしてから、範囲指定をし、削除すれば処理できます。VBAではオブジェクトの名前を指定しなければならないと思うのですが、HP上の、オブジェクトの名前は頻繁に変わる為、名前を指定するという方法では、使いづらいのです。 何か良い方法はないでしょうか?

専門家に質問してみよう