
先ほど同じ質問をさせていただいて解決策ご教示頂いたのですが、また同じエラーでつまづいてしまいました。
Dim Csv_ws As Worksheet
Set Csv_ws = Workbooks("C:\Users\Administrator\Desktop\data2.csv").Worksheets(1)
実行すると「インデックスが有効範囲にありません」とエラーが出てしまいます。
先ほどはcsvを開いていなかった事がエラーの原因だったのですが、今回はdata2.csvは開いた状態です。
一度閉じて、
C:\Users\Administrator\Desktop\data2.csv
をエクスプローラにペーストしEnterを押すとdata2.csvが開くのでフルパスも記述ミスはないと思われます。
data2.csvはダウンロードしてきたものです。
度々で恐縮なのですが解決策ご教示お願い致します。
No.1ベストアンサー
- 回答日時:
こんばんは、
既に開いていると言う事なので、
Workbooks("C:\Users\Administrator\Desktop\data2.csv")は
C:\Users\Administrator\Desktop\data2.csvと言うファイル名を指す事になるかと、この場合、
Windows("data2.csv").Activate とか
Workbooks("data2.csv").Activate とかになります。(アクティブにしている)
なので、
Set Csv_ws = Workbooks("Sheet1.csv").Worksheets(1)
で良いかと、思います。
VBAで他のファイルを操作する場合、開いて、閉じるなどの操作を
含めて行う事が多いです。対象ファイルを開くことで、開いたファイルがアクティブになる為、把握し易いからです。
ご質問とは、離れますが、参考まで
Sub nnn()
Dim Csv_ws As Worksheet
Dim Path As String
Path = CreateObject("WScript.Shell").SpecialFolders("Desktop")
With Workbooks.Open(Path & "\data2.csv") '開く
Set Csv_ws = .Sheets(1)
’メイン処理
’下記は、サンプル A1セルの値をマクロ実行ブックのA1セルに入力(抽出)
ThisWorkbook.ActiveSheet.Cells(1, 1) = Csv_ws.Cells(1, 1)
' .Close ’閉じる
End With
End Sub
CreateObject("WScript.Shell").SpecialFolders("Desktop")は、
デスクトップアドレスを取得しています。
ん?、勘違いしていたらごめんなさい。
ありがとうございます。
Set Csv_ws = Workbooks("data2.csv").Worksheets(1)
とシンプルに記述することで解決しました。
補足情報までわざわざコードを書いて説明して下さってありがとうございました。
No.3
- 回答日時:
> 今回はdata2.csvは開いた状態です。
どうやって開いてるの?
ダブルクリックで開いてるなら、
・ダブルクリックで開かれたdata2.csv
・C:\Users\Administrator\Desktop\data2.csv
を同じファイルと認識していないとか。
Workbooks.Open Filename:="C:\Users\Administrator\Desktop\data2.csv"
で開いてみるとかでは?
> Set Csv_ws = Workbooks("C:\Users\Administrator\Desktop\data2.csv").Worksheets(1)
csvファイルにはワークシートって無いですから、どうだろう?
~.xlsファイルでは?
#手元にExcel無くて確認出来ないですけど。
ファイルは
Workbooks.Open Filename:="C:\Users\Administrator\Desktop\data2.csv"
で開いています。
フルパスではなくファイル名だけ記述することで解決しました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
【ExcelVBA】インデックスが有効範囲にありません。の理由が分かりません
Visual Basic(VBA)
-
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
-
4
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
5
特定のPCだけ動作しないVBAマクロがあります。その理由は?
Visual Basic(VBA)
-
6
エクセルVBA Workbook変数に変数を使ったファイル名を格納したい
Visual Basic(VBA)
-
7
EXCEL VBA で指定した範囲に入力があるかどうか?
Visual Basic(VBA)
-
8
ファイルは既に開かれています(Error55)について
Visual Basic(VBA)
-
9
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
10
エクセルの列の限界は255列以上にはできないのですか?
Excel(エクセル)
-
11
Excelで数値→文字列変換で指数表示になったものをいっぺんに直したい
Excel(エクセル)
-
12
VBA:ワークブックを変数でActiveにしたいのですが・・
Excel(エクセル)
-
13
VBA シートのボタン名を変更したい
Visual Basic(VBA)
-
14
VBAでEmpty値って何ですか?
Excel(エクセル)
-
15
【エクセルVBA】「インデックスが有効範囲にありません」というエラーがでます
Excel(エクセル)
-
16
VBA マクロ実行時エラー’1004RangeクラスのPasteSpecialメソッドが失敗
Access(アクセス)
-
17
「Columns(A:C")」の列文字を数字にして表記したい"
Excel(エクセル)
-
18
実行時エラー9 インデックスが有効範囲にありません!
Visual Basic(VBA)
-
19
VBA アクティブでないシートのセルを選択したり、クリアしたり
Excel(エクセル)
-
20
エクセルVBA で、実行時エラー9 インデックスが有効範囲にありません。の解決方法を教えてください。
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel VBA セルの値がおかしいです
-
VBA セル間のリンク修正につい...
-
WindowsのOutlook を VBA から...
-
【ExcelVBA】値を変更しながら...
-
ExcelのVBAコードについて教え...
-
VBAでCOPYを繰り返すと、処理が...
-
マクロの記録を使用したマクロ...
-
vba textboxへの入力について教...
-
複数のExcelファイルをマージす...
-
Vba Array関数について教えてく...
-
【マクロ】シートの変数へ入れ...
-
【マクロ】並び替えの範囲が、...
-
【マクロ】売上一覧YYYYMMDDHHS...
-
【マクロ】開いているブックの...
-
Excelのマクロについて教えてく...
-
Vba WorkBooks.Openについて教...
-
VBAから書き込んだ条件付き初期...
-
Vba 型が一致しません(エラー1...
-
【ExcelVBA】5万行以上のデー...
-
[Excel VBA]特定の条件で文字を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAでcsvファイルもシートもあ...
-
ダブルコーテーション付きでCSV...
-
【ExcelVBA】300万件越えCSVか...
-
Excelマクロ 空白セルを無視し...
-
LibreOffice Calcのマクロで、...
-
ファイル名を変数で書きこむfwr...
-
シート内容の文字列を置換してV...
-
EXCEL→CSV保存時のダブルクォー...
-
バッチファイルでcsvファイルに...
-
VBAで文字列を引数とするアドイ...
-
VBScript等で、CSV内の各文字列...
-
pythonによるcsv出力がうまくい...
-
VB.netでShellExecuteがしたい
-
IPアドレスのゼロパディング
-
CSVファイルの比較と結果の取得...
-
パイソン文法で ファイルオープ...
-
fortranでデータの抜き出しをし...
-
pythonのこのエラーがわかりません
-
pythonでリストをCSVに出力する...
-
FileListBoxで出すものを絞り込...
おすすめ情報