Microsoft Access 掲示板

フルパス・ファイル名を変数にしたい

3 コメント
views
4 フォロー

VBAコードが初心者の者です。SHELL関数で任意のExcelファイルを開くコードなのですが、フルパス・ファイル名を変数に入れずに記述すると問題ないのですが条件分岐があるので変数にしたいのですが、上手く動作しません。きっと記述のルールが分かっていないので間違いがあるのだと思ってます。
変数Aにバージョンとエグゼ ⇒"C:¥Program Files\Microsoft Office¥Office12¥excel.exe "
変数Bに任意のフォルダー⇒C:¥Users¥●●¥
変数Cに任意のファイル⇒"●●.xls"
とした場合、VBAコード記述を『SHELL"A & B & C"』 では無反応なのですが、どこが間違えているのでしょうか? 自分では解決できなくて・・・

コードビギナー
作成: 2022/06/09 (木) 14:30:15
通報 ...
1
りんご 2022/06/09 (木) 16:42:09 c564b@0e907

ちょっと上手く動くか分かりませんが。
Shell """" & 変数A & """" & """" 変数B & 変数C & """"
もしくは
Shell """" & 変数A & """""" 変数B & 変数C & """"

2

下記でどうでしょう。

Shell """" & A & """ """ & B & C & """"

複数バージョンをインストールしているとか、特別なことをしてなければ、excel.exeはたいていパスが通っているので、下記でも大丈夫かと。

Shell "excel.exe """ & B & C & """"
3
コードビギナー 2022/06/13 (月) 12:29:19 ddfe5@06db9

りんごさん・hatenaさんありがとうございました。色々試しまして Shell A & " " & B & C で上手く動作しました。私の方でコード内でのダブルクオーテーションの使い方が理解出来ていなかったのが原因ですね。いつもこれの使い方で混乱してしまいます。
よく調べるとOfficeのバージョンが2種インストールされていました。これも気がついていませんでした。
もっと勉強が必要ですね・・・