アプリ版:「スタンプのみでお礼する」機能のリリースについて

' GLOBAL変数の定義

Dim CurrentDir As String '現在のディレクトリ
Dim ThisBook As String '現在のブック名

Dim WorkSheetName1 As String
Dim WorkSheetName2 As String
Dim ConfigSheetName As String
Dim ListSheetName1 As String
Dim ListSheetName2 As String
Dim ListSheetName3 As String
Dim ListSheetName4 As String
Dim ListSheetName5 As String
Dim ListSheetName6 As String
Dim ListSheetName7 As String

Dim ErrorFlag As Integer 'エラーフラグ 0:正常 1:エラー

Sub 初期設定()

CurrentDir = ActiveWorkbook.Path '現在のディレクトリ
ThisBook = ActiveWorkbook.Name '現在のブック名

WorkSheetName1 = "work1"
WorkSheetName2 = "work2"
ConfigSheetName = "設定"
ListSheetName1 = "****"
ListSheetName2 = "****"
ListSheetName3 = "****"
ListSheetName4 = "****"
ListSheetName5 = "****"
ListSheetName6 = "****"
ListSheetName7 = "****"


Application.DisplayAlerts = False 'EXCELの警告を無視する

End Sub


Sub CSV取り込み()


Dim LoadBook As String '読み込みブック名
Dim DataMaxCol As Integer '読み込みデータ有効最大カラム数
Dim WorkStartRow As Integer 'workシート開始行
Dim WorkEndRow As Integer 'workシート終了行
Dim ListMaxCol As Integer '一覧シート有効最大カラム数
Dim ListStartRow As Integer '一覧シート開始行

'初期設定コール
Call 初期設定



'workシートをクリア
DataMaxCol = Sheets(ConfigSheetName).Range("F2").Value
WorkStartRow = Sheets(ConfigSheetName).Range("F3").Value
WorkEndRow = Sheets(ConfigSheetName).Range("F4").Value
Sheets(WorkSheetName1).Select
Range(Cells(WorkStartRow, 1), Cells(WorkEndRow, DataMaxCol)).ClearContents


'受注データファイルを選択しオープン
SelectedPath = Application.GetOpenFilename("CSVファイル (*.csv), *.csv")
If SelectedPath <> "False" Then
Workbooks.Open Filename:=(SelectedPath)
Else
'キャンセル時は終了
Exit Sub
End If
LoadBook = ActiveWorkbook.Name '現在のブック名

'受注データの開始行をチェック
I = WorkStartRow

'受注データの最終行をチェック
Do Until ActiveCell.Value = ""
I = I + 1
Cells(I, 1).Select
Loop
WorkEndRow = I - 1

'受注データをコピー
Range(Cells(WorkStartRow, 1), Cells(WorkEndRow, DataMaxCol)).Select
Selection.Copy

'workシートへペースト
Windows(ThisBook).Activate
Sheets(WorkSheetName1).Select
Range("A1").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False

'受注データファイルをクローズ
Windows(LoadBook).Close
End Sub
このマクロを実行するとインデックスが有効範囲にありませんとなりエラーとなってしまいます。
あと最後のデータファイルをクローズできればOKなのですが・・。
どこがいけないんでしょうか?

A 回答 (2件)

すみません。

。適当に回答してしまいました。。

エラーがどの行で発生するのか書かれてませんので、具体的に「ここ」
といったアドバイスができませんが、たぶん変数のどこかが Empty(空)
なのだと思います。例えば、

'受注データファイルをクローズ
> Windows(LoadBook).Close

この行でエラーになるのなら、変数 LoadBook が空っぽとか。

デバッグモードになったとき、Visual Basic Editor のメニュー

  [表示]-[ローカルウインドウ]

として、編集の中身が正しく代入されているかチェックしてみて下さい。
    • good
    • 0
この回答へのお礼

ありがとうございました。
すぐに問題解決しました!!!

お礼日時:2007/11/12 23:33

> あと最後のデータファイルをクローズできればOKなのですが・・。



'受注データファイルをクローズ
Windows(LoadBook).Close
 ↓
'受注データファイルをクローズ
Workbooks(LoadBook).Close

では?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!