Microsoft 製品に組み込まれている Visual Basic の実装。
太字の行に then が必要なのではないでしょうか?
このブラウザーはサポートされなくなりました。
Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。
お世話になっています。
マクロの初心者からの質問となります。
下記のようなデータベースがエクセル上にあると考えてください。
ファイル名:履修一覧
ABCDEFG学生番号レコード名称所属学科講義1講義2講義3講義4A00001111○田○也○○科A00002222△木△郎■■科A00003333■野■子△△科ファイル名:申込書
ABCDEF学生番号氏名受講する講義1受講する講義2受講する講義3受講する講義4A00001111○田○也ABCD現在、ファイル「申込書」を自動的に読み込み、学生番号からvlookupのような処理を行い、ファイル「履修一覧」に書き込むマクロを構築しようとしています。
コードは下記のように現在書いています。
Sub データ変更マクロ()
Dim fileNames As Variant
Dim username As Variant
Dim i As Long
fileNames = Application.GetOpenFilename(MultiSelect:=True)
If IsArray(fileNames) = True Then
For lp = 1 To UBound(fileNames)
Workbooks.Open (fileNames(lp))
username = ActiveWorkbook.Worksheets("Sheet1").Range("C16").Value
' マクロ搭載ブックのシート
Dim tSht As Worksheet
' 申請書
Dim aSht As Worksheet
' オブジェクト変数に設定する。
Set tSht = ThisWorkbook.Worksheets("履修一覧")
Set aSht = ActiveWorkbook.Worksheets("申込書")
For i = 2 To 15000
If tSht.Range("A" & i) = username
' 申請内容を転記する
tSht.Cells(i, 4).Cells(lp, 1).Value = aSht.Range("C2").Value
tSht.Cells(i, 5).Cells(lp, 1).Value = aSht.Range("D2").Value
tSht.Cells(i, 6).Cells(lp, 1).Value = aSht.Range("E2").Value
tSht.Cells(i, 7).Cells(lp, 1).Value = aSht.Range("F2").Value
Else: i = i + 1
End If
Next
ActiveWorkbook.Close
Next
End If
End Sub
以上のように書き込んで実行しようとすると、エラーが発生してしまいます。
太字のところに問題があると思うのですが、「履修一覧」と「申込書」の学生番号を比較し、一致したら該当の行のDからGの部分を書き換える、ということがいろんなサイトを見てもどうしてもできず、困り果てています。
お手数ですが、上記のコードのどこに問題があるのか、他にいいコードの書き方があるのか、ご教授いただければ幸いです。
よろしくお願いいたします。
Microsoft 製品に組み込まれている Visual Basic の実装。
ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。