
指定のファイルをフォルダAからフォルダBへ移動させるというvbaを
見つけたのですが、
サンプルの表記は「"C:\Data\A"」と直接場所をしていしたものなので、
参照するフォルダ場所として、セルC1を参照させようと、
「Range("C1")」と書き直したところ、
「コンパイルエラー:定数式が必要です」とエラーになってしまいます。
どの様に書き直せばよいのでしょうか?
どなたかご存じでしたら、ぜひお教え下さい。
よろしくお願いします。
エクセル2010を使用しています。
Sub CheckAndMoveFiles()
Const FolderA = Range("C1") 'エラー発生
'Const FolderA = "C:\Data\A" サンプルの表記
Const FolderB = "C:\Data\B"
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Dim ws As Worksheet
Set ws = ActiveSheet
Dim lastRow As Long
lastRow = ws.Range("A" & Rows.Count).End(xlUp).Row
Dim r As Long
Dim fileName As String
For r = 1 To lastRow
If ws.Cells(r, "A").Value <> "" Then
' fileName = ws.Cells(r, "A").Value & ".xls"
fileName = ws.Cells(r, "A").Value
If fso.FileExists(FolderA & "\" & fileName) = True Then
fso.moveFile FolderA & "\" & fileName, FolderB & "\" & fileName
End If
End If
Next
End Sub

No.1ベストアンサー
- 回答日時:
こんにちは。
Const FolderA = Range("C1") のConstは「リテラル値の代わりに使う定数を宣言」するステートメントです。
定数を宣言するのだから、可変になるような記述は出来ないのでエラーになるのです。
セルに入っている値を使いたいのであれば
Dim FolderA As String
FolderA = Range("C1").Value
のようにするといいでしょう。
M-SOFT さま
できました!
大変わかりやすい説明も付けていただいて、理解もできてたすかりました。
ありがとうございますm(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA 請求書自動作成 3 2022/04/24 01:58
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) VBA処理追加 こちらでご教示頂いたのですが回答完了させてしまいましたのでこちらからまた質問させてく 2 2022/10/27 09:57
- Visual Basic(VBA) VBA 別ブックからの転記の高速化について VBA 別ブックからの転記の高速化についてご教授下さい。 19 2022/07/26 13:07
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
このQ&Aを見た人はこんなQ&Aも見ています
-
「定数式が必要です。」って何のこと?
Visual Basic(VBA)
-
[VBS]変数を定数に変換する方法を教えて下さい。
Visual Basic(VBA)
-
VBA 変数名に変数を使用したい。
Visual Basic(VBA)
-
-
4
Excel-vba 文字列と変数を連結して更に変数として扱いたい
その他(プログラミング・Web制作)
-
5
「Columns(A:C")」の列文字を数字にして表記したい"
Excel(エクセル)
-
6
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
7
EXCEL ページを指定してPDF出力するVBAを教えてください。
PDF
-
8
特定の文字を含むシートだけマクロ処理をしたい
Visual Basic(VBA)
-
9
ブック名、シート名を他のモジュールからも参照可能にする方法
Access(アクセス)
-
10
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
11
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
12
エクセルVBAでUserFormを起動した時
Excel(エクセル)
-
13
VBA Cのセルが空白でなかったら、Aのセルに順番に数値を入力
Visual Basic(VBA)
-
14
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
15
VBAのfor...next構文で i = A to Z としたい。
PowerPoint(パワーポイント)
-
16
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
17
エクセルのフィルタオプションで「ある文字列を含まない」条件は?
Excel(エクセル)
-
18
VBAで、なぜかSendkeyが効きません。
PowerPoint(パワーポイント)
-
19
VBAでループ内で使う変数名を可変にできないか。
Visual Basic(VBA)
-
20
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
実行時エラー -'-2147417848
-
なぜこんな初歩的なVBAのIf文で...
-
VBAがブレークモードになっ...
-
Excel VBA で End Subのところ...
-
実行時エラー 438になった時の...
-
Excelで=IFで始まるStringがセ...
-
Outlook.ApplicationをCreateOb...
-
マクロについて教えてください...
-
excel エラー値を非表示にした...
-
VBAで、定数式が必要ですのエラ...
-
ExcelVBA Range クラスの Page...
-
AccessのクエリーでDate関数の...
-
なぜエラーになるのでしょうか...
-
日本語環境下で作成したマクロ...
-
テキストボックスに記述した数...
-
「Active Directoryプロパティ...
-
マクロでオートシェイプ内の文...
-
VB6 エラー「プロシージャの呼...
-
VBS実行時エラー オブジェクト...
-
excel2016では問題ないのがexce...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
実行時エラー 438になった時の...
-
VBAがブレークモードになっ...
-
なぜこんな初歩的なVBAのIf文で...
-
ExcelVBA Range クラスの Page...
-
EXCEL VBAマクロ中断でデバッグ...
-
実行時エラー -'-2147417848
-
【Excel VBA】マクロをボタンに...
-
Outlook.ApplicationをCreateOb...
-
VBAでのエラー
-
マクロについて教えてください...
-
実行時エラー3001「引数が間違...
-
実行時エラー48発生時のDLL特定...
-
VB6+SQL サーバー 2000 で 実行...
-
エクセルエラー13型が一致しま...
-
VBS実行時エラー オブジェクト...
-
ADODB.Streamを使用してUTF-8を...
-
INSERT INTOステートメント構文...
-
VBAで、定数式が必要ですのエラ...
-
OLEDB.NETで接続できない
-
VBSで変数の宣言はできないので...
おすすめ情報