質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

1回答

2413閲覧

エクセルマクロでセルの参照ができません。

macro-beginner

総合スコア25

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2017/01/26 00:18

ブックを開く参照パスとシートの参照値をセルからひっぱってこようとしているのですが、なぜか取得できません。

sn = Cells(2 + i - 1, "B").Value bn = Cells(2 + i - 1, "C").Value

ではsnがB2を参照し、bnがC2を参照しているはずなのですがどうしても
”見つかりません”とでてきてしまいます。

また、

sn = Cells(2 + i - 1, 2).Value bn = Cells(2 + i - 1, 3).Value

とやっても同様です。
どこが間違っているのでしょうか??

イメージ説明

イメージ説明

イメージ説明

Sub Data_Copy() Dim op As Worksheet, cPath As String, xFile As Worksheet, i As Integer, sn As String, bn As String Set op = Workbooks("CAB-Grapf.xls").ActiveSheet cPath = op.Range("B1").Value Application.ScreenUpdating = False 'シートを追加 Worksheets.Add After:=Sheets("DATA"), Count:=op.Range("K1").Value For i = 1 To op.Range("K1").Value If i > 10 Then '入力値が予定数を超えてしまったら終了 MsgBox "シートが追加されていません。" Exit For End If Sheets("sheet" & i).Select 'シート名部分を sheet と i で組み合わせて作る ActiveSheet.Name = op.Range("B2").Offset(i - 1, 0).Value 'B2セルを先頭に行方向にオフセット Next 'シート追加ここまで 'WorkBookを開く For i = 1 To op.Range("K1").Value sn = Cells(2 + i - 1, "B").Value bn = Cells(2 + i - 1, "C").Value If i > 10 Then MsgBox "Bookがそんなにありません" Exit For End If Workbooks.Open bn Range("A1:AU3100").Copy Workbooks("CAB-Grapf.xls").Worksheets(sn).Range("A1:AU3100").PasteSpecial Paste:=xlPasteAll Application.CutCopyMode = False ActiveWorkbook.Close SaveChanges:=False Next Application.ScreenUpdating = True End Sub

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

date

2017/01/26 00:26

上の画像では bn=Cells(2+i,C) 下のプログラムでは bn = Cells(2 + i - 1, "C").Value となっていますが今はどちらが正しいですか
guest

回答1

0

ベストアンサー

目的のセルからbnに値が取得できていないように見受けられます。

直前の処理でアクティブシートを切替えながら処理されているようですので、bnにセル値を取得する際、対象シートを明示していないのが問題となりそうです。

sn = op.Cells(2 + i - 1, "B").Value bn = op.Cells(2 + i - 1, "C").Value

と変更すれば目的の値が取得できると思います。

お試しください。

投稿2017/01/26 00:41

jawa

総合スコア3013

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

macro-beginner

2017/01/26 01:01

できました!!;; 感激です!本当に毎度助けて頂きありがとうございます! またよろしくお願い致します!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問