
指定のファイルをフォルダ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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
「定数式が必要です。」って何のこと?
Visual Basic(VBA)
-
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
「Columns(A:C")」の列文字を数字にして表記したい"
Excel(エクセル)
-
-
4
エクセルVBAでUserFormを起動した時
Excel(エクセル)
-
5
[VBS]変数を定数に変換する方法を教えて下さい。
Visual Basic(VBA)
-
6
VBA 変数名に変数を使用したい。
Visual Basic(VBA)
-
7
Excel-vba 文字列と変数を連結して更に変数として扱いたい
その他(プログラミング・Web制作)
-
8
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
9
Excel VBA 定数にオブジェクトを指定したい
Visual Basic(VBA)
-
10
ExcelのVBA。public変数の値が消える
Visual Basic(VBA)
-
11
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
12
特定の文字を含むシートだけマクロ処理をしたい
Visual Basic(VBA)
-
13
表にフィルターをかけ、絞ったデータ(可視化セルのみ)を一次元配列として変数に入れるという動作を書きた
Visual Basic(VBA)
-
14
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
15
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
16
VBA シートのボタン名を変更したい
Visual Basic(VBA)
-
17
ブック名、シート名を他のモジュールからも参照可能にする方法
Access(アクセス)
-
18
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
19
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
20
VBA エンターキーでイベントに入りたい。
PowerPoint(パワーポイント)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
実行時エラー 438になった時の...
-
実行時エラー48発生時のDLL特定...
-
【Excel VBA】マクロをボタンに...
-
VB6+SQL サーバー 2000 で 実行...
-
AccessVBAでExcelを起動し、罫...
-
VBAがブレークモードになっ...
-
なぜこんな初歩的なVBAのIf文で...
-
実行時エラー3001「引数が間違...
-
OLEDB.NETで接続できない
-
実行時エラー -'-2147417848
-
なぜエラーになるのでしょうか...
-
ExcelVBA Range クラスの Page...
-
[Delphi] データセットは閉じて...
-
「コンパイルエラー:プロシー...
-
VBA IEの操作 ClassNameでエラ...
-
【VBA-AC2000】カレントプロシ...
-
【VBA】ボタンに登録したマクロ...
-
VBS実行時エラー オブジェクト...
-
マクロ実行時にエラーが出てし...
-
エラーDlg「An invalid argumen...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
実行時エラー 438になった時の...
-
VBAがブレークモードになっ...
-
実行時エラー -'-2147417848
-
【マクロ】エラー【#DIV/0!】が...
-
なぜこんな初歩的なVBAのIf文で...
-
マクロについて教えてください...
-
VBAでのエラー
-
ExcelVBA Range クラスの Page...
-
実行時エラー48発生時のDLL特定...
-
実行時エラー3001「引数が間違...
-
VBAで、定数式が必要ですのエラ...
-
Outlook.ApplicationをCreateOb...
-
あとこれさえ出来ればよいので...
-
VB6+SQL サーバー 2000 で 実行...
-
VBS実行時エラー オブジェクト...
-
EXCEL/VBAで、自分のPCだけエラ...
-
EXCEL VBAマクロ中断でデバッグ...
-
VBAのエラー発生場所をメッセー...
-
なぜエラーになるのでしょうか...
-
Invalid procedure call or arg...
おすすめ情報