ChDirステートメントでエラー表示されるが?

Question 044k 拙著「組み方講座」 Previous Next
95ページ [1-1-14図] ◆ 環境・・ Excel 2003 & Windows XP
詳細は こちら
実行すると以下のメッセージがでます。

『ChDir』 パスが黄色くなります。
記入したマクロは以下の通りです。
Option Explicit
Dim 行, ドライブ, 親フォルダ, 子フォルダ, ファイル名, 拡張子, パス

Sub 環境リストボックスでクリックされた()
    行 = Worksheets("呼出").Cells(2, 1) + 1
    管理表シートから値を取り出す
    選択されたファイルを開く
End Sub

Private Sub 管理表シートから値を取り出す()
    ドライブ = Worksheets("管理表").Cells(行, 2)
    親フォルダ = Worksheets("管理表").Cells(行, 3)
    子フォルダ = Worksheets("管理表").Cells(行, 4)
    ファイル名 = Worksheets("管理表").Cells(行, 5)
    拡張子 = Worksheets("管理表").Cells(行, 6)
End Sub

Private Sub 選択されたファイルを開く()
    ChDrive ドライブ
    パス = ドライブ & ":¥" & 親フォルダ & "¥" & 子フォルダ
    ChDir パス
    Workbooks.Open Filename:=ファイル名 & ".xls", ReadOnly:=True
End Sub
Answer   Copyright (C) 2004.11.20 永井善王
拙著「ExcelVBAマクロ組み方講座」をご購読、ありがとうございます。
実行時エラー
さっそく、ご提示いただいたマクロを実行してみたところ、確かに右図のエラーが表示され、[デバッグ]ボタンをクリックすると、下から 3行目の
ChDir パス が黄色く網掛けされました。

ChDirステートメントは、指定したドライブの現在フォルダを変更するためのもの (詳細は28ページ参照)で、この場合は変数「パス」の指定により変更されます。

変数「パス」に値を設定するコードは、すぐ上の行にありますが、それを下記に写してみますと、

 パス = ドライブ & ":¥" & 親フォルダ & "¥" & 子フォルダ です。 これに対して正しいコードを青字で示しますと、
 パス = ドライブ & ":\" & 親フォルダ & "\" & 子フォルダ   となります。

行の長さが微妙に違うことがわかりますか?
上の行は全角の「 ¥ 」、
下の行は半角の「 \ 」記号が使ってありますね。

学習中、本に載っているコードを見て入力する機会が多いですが、本の活字が全角なのか半角なのか、見分けしにくいかも知れません。 慣れるまでは、
コードの英数字と記号は半角で入力 と覚えておきましょう。
よって、この 2カ所を修正して実行されれば、きっと上手くいきます。
ここまで順調に進まれたようですから、だんだんと面白味が出てくるかと思います。

関連ページ 
「パスが見つかりません」とエラー表示されるが?

 

Excel VBA Macro