
標題の件、VBAにて指定するフォルダパスに半角スペースがあると
VBAが動きません。半角スペースをそのまま、VBAにて書いても
動きません。
フォルダパスにおける、半角スペースはどのように書けば
良いでしょうか。なお、下記のVBAは、フォルダパスに半角スペースが
無ければ、普通に動きます。
ご存じの方、教えて下さい。
【VBA】
内容:フォルダAを開く
指定したフォルダを開く()
【フォルダパス】
C:\Users\2020\Desktop\㉖ あいうえお
㉖とあいうえおの間に半角スペースがあります
【VBA】
Sub 指定したフォルダを開く()
CreateObject("WScript.Shell").Run "C:\Users\2020\Desktop\" & ChrW(12886) & "あいうえお\フォルダA"
End Sub
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
>●↓定数の宣言ですが、どういう意味ですか?
定数 プログラムの中で変更できないもの
変数 プログラムの中で自由に代入により変更できるもの
定数は Dim(または Private, Puclic等のキーワード) の代わりに Const を使います。
モジュールレベル、またはグローバルレベルで使うことが多い。
また、歴史的な慣習で全て大文字で名前を付けることが多いです。変数との区別のため。
例えばプログラム全体に Worksheets("入力") が100箇所あったとします。
仕様変更でシート名が「顧客マスタ」になった。
という状況でプログラム中に記載された100箇所を全て訂正するのか、行頭の定数のとこだけ修正するだけで済むのかということです。
ソースのメンテナンス性や、可読性の良さは定数を使った方が分かりやすくなります。
>半角スペースを宣言しているのですか?
違います。ダブルクウォート「"」を定義しています。
ダブルクウォートはプログラム的に特別な意味をもつ記号なので、そのまま書くとコンパイルエラ-になります。
それを防ぐにはエスケープといって「"」を重ねれば良いのですが、これを定義しないで直接書くと
CreateObject("WScript.Shell").Run """" & path & """"
となり、何をやってるのかパッと見でわかりにくいため、定数をオススメしてます。
>●pathの前と後ろを宣言した定数WQとつなげていますがどういう意味でしょうか。
半角SPで分割されて Shell にパラメータが渡るため、パスは括らないといけません。
例えば C:\Program Files を括らないと
Shell には C:\Program がパスとして渡ってしまいます。ダブルクウォートで括ると途中半角SPがあってもこれを回避できます。
No.3
- 回答日時:
こんにちは。
Shell にパスを渡す場合は、ダブルクウォートで括って下さい。
C:\Program Files
みたいにパスは普通に半角SPが入ります。デフォで括って下さい。
コマンドラインでプログラムを起動するとき、半角SPがパラメータ区切りになりますが、それです。Shell は半角SPの前と後で分割して別パラメータと解釈しようとします。
→だからダブルクウォートで括る
”””” と4つダブルクウォートを重ねてVBEに書いてもいいけど、見づらいので定数(今回は Const WQ のとこ)に定義した方が良いでしょう。
Const WQ = """"
Sub sample()
Dim path As String
path = "C:\Users\2020\Desktop\" & ChrW(12886) & " あいうえお"
CreateObject("WScript.Shell").Run WQ & path & WQ
End Sub
ありがとうございます。動きました。
質問なのですが、下記2点、教えて下さい。
なお、勉強不足かと思うのですが、何について
勉強すれば、下記vbaを理解できますか?
教えて下さい。宜しくお願いします
●↓定数の宣言ですが、どういう意味ですか?
半角スペースを宣言しているのですか?
Const WQ = """"
●pathの前と後ろを 宣言した定数WQとつながていますが
どういう意味でしょうか。
CreateObject("WScript.Shell").Run WQ & path & WQ
No.1
- 回答日時:
こんばんは
>"C:\Users\2020\Desktop\" & ChrW(12886) & "あいうえお\フォルダA"
半角スペースを抜いているから、違うディレクトリと判断されているだけでは?
スペースを下記のとおり、普通に入れるとエラーにて動きません。
【フォルダパス】
C:\Users\2020\Desktop\㉖ あいうえお
【スペースなし】
CreateObject("WScript.Shell").Run "C:\Users\2020\Desktop\" & ChrW(12886) & "あいうえお\フォルダA"
【スペースあり】
CreateObject("WScript.Shell").Run "C:\Users\2020\Desktop\" & ChrW(12886) & " あいうえお\フォルダA"
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【マクロ】フォルダAからダBへファイルを、ファイルの更新日時の条件で、1つづつ移動するには? 3 2022/08/25 09:56
- Excel(エクセル) 【マクロ】フォルダを3つ、POモニター上に、決まった並べ方をしたい 4 2022/08/31 11:05
- Excel(エクセル) 【マクロ】フォルダを2つのモニターの定位置に並べたい 2 2022/09/02 01:14
- Excel(エクセル) 【VBA】環境文字を含んだVBAのフォルダパスの書き方について 1 2022/07/28 11:47
- Android VBA、フォルダのパスに環境文字 ㉑ があり、VBAが機能しません。 2 2022/07/27 09:16
- Excel(エクセル) フォルダAから1つのファイルだけを、フォルダBへを移動するVBAについて 2 2022/07/25 11:45
- Visual Basic(VBA) あるフォルダーのファイルを違う親フォルダーのサブフォルダーに移したい 11 2023/02/15 19:00
- Windows 10 コマンドプロンプトの使い方 1 2022/10/13 14:43
- Excel(エクセル) 【VBA】フォルダAにある2つのファイルの内1つを、フォルダBへ。もう1つを、フォルダBへ移動したい 6 2022/07/26 08:51
- Visual Basic(VBA) 指定列最終行までのスペースを改行するVBAについて 2 2022/06/01 19:50
このQ&Aを見た人はこんなQ&Aも見ています
-
ExcelVBAのDirでスペース含むファイル名
Visual Basic(VBA)
-
VBA で、スペースを含むファイル名をコピーしたい。
Excel(エクセル)
-
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
-
4
お助けください!VBAのファイル名エラーについて
Visual Basic(VBA)
-
5
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
6
VBA 半角スペースを入れるには...
その他(Microsoft Office)
-
7
エクセルVBAでセルに入力したパスでブックを開く
Excel(エクセル)
-
8
特定のPCだけ動作しないVBAマクロがあります。その理由は?
Visual Basic(VBA)
-
9
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
10
括弧があるとHYPERLINKで飛べない?
Excel(エクセル)
-
11
VBAでファイルを開くときにファイル名でワイルドカードを使用したいです
その他(プログラミング・Web制作)
-
12
MkDir パス名が無効です
Visual Basic(VBA)
-
13
excel vbaから実行するexe実行の黒い画面の非表示
Visual Basic(VBA)
-
14
VBAでパワーシェルを実行したいのですが、なかなかうまく出来ず、有識者の知識をお借りさせてください。
その他(プログラミング・Web制作)
-
15
Excelのセルにユーザー名を表示する方法
Excel(エクセル)
-
16
WSHで空白を含んだコマンドの指定方法
その他(プログラミング・Web制作)
-
17
エクセル・VBA CheckBoxのオブジェクト名に変数を使うことは可能でしょうか?
Excel(エクセル)
-
18
「Columns(A:C")」の列文字を数字にして表記したい"
Excel(エクセル)
-
19
ACCESSのデータに自動で半角スペースを入れたい
その他(データベース)
-
20
UserForm1.Showでエラーになります。
工学
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
半角の×(かける)は?
-
Wordで表中の数字をすべて...
-
半角スペース
-
お名前(姓)」には「カタカナ(...
-
半角の『°(単位の度)』
-
ワードの文字カウント機能をエ...
-
契約書や 公文書・私文書などに...
-
ホームページにPDFで注文書...
-
半角英数で♭の入力
-
ネームランドで二桁数字を打つには
-
℃の半角表示
-
全角・半角変更
-
EXCEL95 VLOOKUP関数で半角と全角
-
半角スペースの入力
-
EXCELで、セル内の半角カ...
-
フランス語 記述のさいの半角...
-
フォトショップで文章を均等に...
-
引用符コーテーションマーク、...
-
新しいDVDRWに名をつけるとき
-
テプラは半角数字が使えますか?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
契約書や 公文書・私文書などに...
-
半角の×(かける)は?
-
半角の『°(単位の度)』
-
℃の半角表示
-
EXCELの文字列操作で文字数不足...
-
半角スペース
-
EXCELで、セル内の半角カ...
-
エクセル関数で文字列の中のス...
-
Excel 文字列の中から数字だけ...
-
テプラは半角数字が使えますか?
-
EXCEL95 VLOOKUP関数で半角と全角
-
メールアドレスの上ハイフン入...
-
エクセルでひらがな・漢字はそ...
-
ビジネスの文書における、数字...
-
エクセルで、JIS関数、ASC関数...
-
隅付き括弧に半角はありますか...
-
Excel2016 検索の窓を常時表示...
-
エクセルで 全角の空白を含む...
-
ヘッダー(フッター)の全角・...
-
【VBA】ファイルパスに半角スペ...
おすすめ情報