標題の件、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も見ています
-
新NISA制度は今までと何が変わる?非課税枠の拡大や投資対象の変更などを解説!
少額から投資を行う人のための非課税制度であるNISAが、2024年に改正される。おすすめの銘柄や投資額の目安について教えてもらった。
-
ExcelVBAのDirでスペース含むファイル名
Visual Basic(VBA)
-
VBA で、スペースを含むファイル名をコピーしたい。
Excel(エクセル)
-
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
-
4
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
5
エクセルでエラーが出て困っています。
Excel(エクセル)
-
6
VBA 半角スペースを入れるには...
その他(Microsoft Office)
-
7
名前をつけて保存した後、元のファイルに戻るには
その他(コンピューター・テクノロジー)
-
8
VBAでファイルを開くときにファイル名でワイルドカードを使用したいです
その他(プログラミング・Web制作)
-
9
ExcelのVBA。public変数の値が消える
Visual Basic(VBA)
-
10
UserForm1.Showでエラーになります。
工学
-
11
Excelのセルにユーザー名を表示する方法
Excel(エクセル)
-
12
メッセージボックスに表示する文字を大きくしたい
Excel(エクセル)
-
13
VBA シートをコピーする際に Copyメソッドは失敗しましたのエラーが出てしまいます
Visual Basic(VBA)
-
14
Shell関数内で変数を使うことについて
Excel(エクセル)
-
15
Excelのセルの色指定をVBAから配列を用いて効率的に行う方法はあり
Visual Basic(VBA)
-
16
VBAでファイルパスが長すぎてコピー時のエラー対策
Excel(エクセル)
-
17
エクセルVBAでセルに入力したパスでブックを開く
Excel(エクセル)
-
18
マクロの「SaveAs」でエラーが出るのを解消したいです(再)
Visual Basic(VBA)
-
19
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
20
VBAで、なぜかSendkeyが効きません。
PowerPoint(パワーポイント)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
半角の『°(単位の度)』
-
テプラは半角数字が使えますか?
-
Excel2016 検索の窓を常時表示...
-
半角の×(かける)は?
-
半角英数で♭の入力
-
℃の半角表示
-
半角スペース
-
携帯で全角スペースを入れるには?
-
半角の漢字の入力方法
-
メールアドレスの上ハイフン入...
-
EXCELで、セル内の半角カ...
-
エクセルで、JIS関数、ASC関数...
-
テキストを全角→半角に変換する...
-
問2 次の文中の空欄にあてはま...
-
Excel セル内の文字と数字をわ...
-
ギリシャ文字 μの出し方
-
amazonでのクレジットカード入...
-
契約書や 公文書・私文書などに...
-
Wordの原稿用紙設定について
-
ワードで文章打つ時、全角、半...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テプラは半角数字が使えますか?
-
契約書や 公文書・私文書などに...
-
メールアドレスの上ハイフン入...
-
半角スペース
-
半角の『°(単位の度)』
-
半角の×(かける)は?
-
℃の半角表示
-
EXCELの文字列操作で文字数不足...
-
EXCEL95 VLOOKUP関数で半角と全角
-
関数を使わずに一括で全角を半...
-
エクセル関数で文字列の中のス...
-
【VBA】ファイルパスに半角スペ...
-
半角の漢字の入力方法
-
EXCELで、セル内の半角カ...
-
Excel 文字列の中から数字だけ...
-
ビジネスの文書における、数字...
-
1, (1),(1)の使い分け
-
Excel2016 検索の窓を常時表示...
-
Excel セル内の文字と数字をわ...
-
エクセルで、JIS関数、ASC関数...
おすすめ情報