- ベストアンサー
VBA と コンパイル の関係
Siegruneの回答
- Siegrune
- ベストアンサー率35% (316/895)
例)Dim asx As springのところでエラーになるプログラム Sub aaa() Cells(1, 1).Value = 123 End Sub Sub bbb() Dim asx As spring End Sub これで、sub aaa()を実行すると VBEのオプション:全般の順次コンパイルにチェックがある場合、 aaa()は実行され、正常終了します。 ⇒ wikiなどにある「インタプリタ(interpreter)とは・・・逐次解釈しながら実行するプログラムのこと。」の通り、処理するサブルーチンを処理する順番にコンパイル(解釈)しながら実行しています。 VBEのオプション:全般の順次コンパイルにチェックがない場合、 sub bbb()の Dim asx As spring のところがエラー表示され、aaa()は実行されません。 逐次解釈しながら実行するプログラムとはいえないですね。 しかし、aaa()を Sub aaa() Cells(1, 1).Value = 123 a == 1 End Sub とすると、どちらの場合も Cells(1, 1).Value = 123 は処理されず、a == 1でエラーになります。 VBEのオプション:全般の順次コンパイルにチェックがない場合、 インタープリターといっても、行単位の逐次解釈ではないですね。 あくまで、サブルーチン単位の逐次解釈です。 wikiの「基本的には」となっているところが、どういう意図かは知りませんが、 実行時コンパイラがVBAでは勝手に動いていると思ったほうがいいような気もします。 (本題ではなさそうなので詳しくはやめておきます。) 「VBAProjectのコンパイル」機能は、エラーチェック目的で、実行時に行われるコンパイルを テスト実行しているだけと思えばいいのでは? ※ コンパイルといってもファイル出力しているのではなくメモリ上に展開しているだけ かもしれません。(詳細不明) なお、「VBAProjectのコンパイル」実行しただけで、ファイルサイズが大きくなっているから、 これをやっておくと、実行時に行われるコンパイルがすでに済んだ状態になって 少し早いのかもしれません。 ただし、マクロを1回実行しただけで保存しても同様にファイルサイズは大きくなるので、 どちらをやってもあまり違いはないかと思います。 (同じサイズにならないところがまた良く分からないけど。 どちらにしろ、EXCELの内部的な話なのでよくわからないところです。 ※以下は、感想程度に思っていただいて、あてにしないでください。 本題と関係するのか微妙ですし。)
関連するQ&A
- VBAでコンパイルする時のショートカットキー
VBA初心者です。 VBAでプロシージャを作成するたびに、コンパイル作業を頻繁に行うので、 メニューバーの「デバッグ」→「VBAprojectのコンパイル」をクリックしなくてもよい、ショートカットキーがあれば教えてください。
- 締切済み
- その他MS Office製品
- vbaとvb 「デバッグ」「ビルド」
vbaの「デバッグ→VBAプロジェクトのコンパイル」=VB.netで言う「ビルド」、 vbaの「実行」=VB.netの「デバッグ開始」 であってますか? デバッグ=コンパイル=ビルドなのか混乱しています。 いろいろな言葉が出てきて頭がぐちゃぐちゃなので整理したいです。 よろしくお願いします。
- ベストアンサー
- Visual Basic
- VBAの将来性について
いつもお世話になっております。 VBAのことを調べていたら以下のように書かれていました。 >近年マイクロソフト社はActiveX/Component Object Modelから.NET Frameworkへの転換を進めており >Visual Basic for Applications - Wikipedia >http://ja.wikipedia.org/wiki/VBA 調べてみるとVSTOという技術でのOffice開発があって、 それへの転換を進めているということなのだろうと推測しました。 そこで質問なのですが、VBAの技術は追加されていますか? Office2003と比較してOffice2007でこういう技術が追加されたという 情報がございましたら、教えて頂けませんか? マイクロソフト社としてはVBAにこれから力を入れていくものなんでしょうか? VBAがなくなるということはないと思うのですが、 技術の追加は主にVSTO側に行っているようであれば、 今後のOffice開発の方針を考えたいと思い、質問させて頂いております。 ぜひよろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- デバッグ→コンパイル すると 停止する
vbaでコードを書き、 デバッグ→コンパイルをすると 必ず画像のような画面が出て、アクセスが再起動してしまいます。 ファイルが壊れているのでしょうか? 2010です。
- 締切済み
- オフィス系ソフト
- Excelの"マクロ"という言い方は英語圏では?
教えてください。 日本では、ExcelのVBAを"マクロ"と呼ぶことが多いです。 これは厳密には誤った用法のようですが、広く使われている思います。 そこで、英語圏ではどうなのでしょうか? やはり、日本同様、macroと呼ばれることが多いのでしょうか? なお、アメリカのAmazonのサイトを覗くと、macroとvbaの両方があるようです。 https://www.amazon.com/s?k=excel+macro&ref=nb_sb_noss wikipdeidaでも、数は少ないですがmacroをvbaの意味で使っているような記述あるようでした。 https://en.wikipedia.org/wiki/Visual_Basic_for_Applications
- 締切済み
- Excel(エクセル)
- 「ファイルが見つかりません」VBAが実行できない
今まで問題なく使えてたアクセスのファイルがあるのですが vbaコードを実行しようとしたら、ファイルが見つかりません と言うエラーがでてしまいます。 VBE画面を開いて、コンパイルしてみたのですが、どこでエラーになってるのか出ません。 何をしても、ファイルが見つかりません が出ます。 どうすればいいでしょうか? 2010です。
- ベストアンサー
- オフィス系ソフト
- EXCEL VBAで
VBA初心者です 簡単過ぎる質問で申し訳ありませんが 調べてみても分からなかったので質問さしてもらいます VBEの標準モジュール1で簡単なプログラムを作成しました デバッグツールバーから実行をすると プログラム通り、動作はしましたが・・・ VBE画面を閉じてからの、プログラムを実行する方法が分かりません 右上の×を押しの、プログラム実行です 作ったプログラムを動作しようと思って 開発→マクロを押しても、作ったマクロ名が表示されないです どのようにしたら、標準モジュールで作ったマクロが、表示されるようになりますか?
- ベストアンサー
- オフィス系ソフト
- VBAについて教えて下さい。
VBAの事について教えて下さい。 初心者です。本で読んだのですが、エクセルのツールから、 マクロ→Visual Basic Editorをクリックすると、 Microsoft Visual Basic‐Book1と言う画面で、 左側に VBA Project(Book1)と言う画面になるとなっていますが、 Microsoft Visual Basic‐Excel_JSV7.xlaと言う画面になり、 Excel_JSV7.xla‐JSV7Transk JSheet(コード)と他に2つが出てきます。 こんな時は、どうすれば直るのでしょうか? どなたか作業の仕方を教えていただけないでしょうか。
- ベストアンサー
- Visual Basic
- エクセル2002に追加でVBAヘルプをインストールしたい
VBAヘルプを使うために、エクセル2002に追加でVBAヘルプをインストールしたいです。 「プログラムの追加と削除→Microsoft Office XP Professional 変更→機能の追加/削除→Office共有機能→Visual Basic for Applications→Visual Basic ヘルプ」 のような感じで進んでいきますが、最後にCD-ROMを挿入して下さいという画面にたどり着きます。 しかし、パソコンには購入時にすでにエクセルがインストールされていてOfficeやEXCEL単体のCDがありません。CDとしてあるのはドライバーCDとリカバリーCD(4枚)しかなく、一応CD-ROMを挿入して下さいという画面の時に読み込んでみましたが読めません。 このような状態だと追加インストールはできないのでしょうか。もしできるとすればどうすればよいのでしょうか。
- 締切済み
- オフィス系ソフト
お礼
ありがとうございました。