以下のマクロを実行すると同一ブック内の他のシートに入力
されますが、これを他のブックのシートに入力されるように
するには、具体的にどのようにすればいいのでしょうか?
ご教授ください。
----------------------------------------------------------------
Sub 入力()
Dim LastRow As Long
With Worksheets("sheet2")
LastRow = Worksheets("sheet2").Range("B" & Rows.Count).End(xlUp).Row + 1
.Range("B" & LastRow).Value = Worksheets("sheet1").Range("B1").Value
.Range("C" & LastRow).Value = Worksheets("sheet1").Range("B3").Value
.Range("D" & LastRow).Value = Worksheets("sheet1").Range("B5").Value
.Range("E" & LastRow).Value = Worksheets("sheet1").Range("B7").Value
.Range("F" & LastRow).Value = Worksheets("sheet1").Range("B9").Value
.Range("G" & LastRow).Value = Worksheets("sheet1").Range("B11").Value
End With
End Sub
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
こんばんは。
書き換えると、こんな感じですね。
写すほうのブックは開いておいてください。
'----------------------------------
Sub 入力2()
Dim i As Long
Dim j As Long
Dim Sh1 As Worksheet
Dim Sh2 As Worksheet
On Error GoTo ErrHandler
'以下のように書き換えます。
Set Sh1 = ThisWorkbook.Worksheets("sheet1")
Set Sh2 = Workbooks("TestBook1.xls").Worksheets("sheet2")
j = Sh2.Cells(Rows.Count, 2).End(xlUp).Row + 1
For i = 1 To 6
Sh2.Cells(j, i + 1).Value = Sh1.Cells((i - 1) * 2 + 1, 2).Value
Next i
ErrHandler:
If Err.Number > 0 Then
MsgBox Err.Number & " : ブックが開いていないか、シートが見つかりません。", 48
End If
Set Sh1 = Nothing
Set Sh2 = Nothing
End Sub
No.1
- 回答日時:
>すると同一ブック内の他のシートに入力されますが
sheet2を指定しているから、Sheet2にセットされるだけで、Sheet2をActivateしているときは「他の」シートといえますか?紛らわしい。
Sheet2からSheet2に代入するコードも質問のパターンです。左辺は
Sheet2で指定しますが。
ーー
Sub 入力()
Dim wk1 As Workbook
Dim wk2 As Workbook
Set wk1 = ActiveWorkbook
Set wk2 = Workbooks.Open("C:\Documents and Settings\XXX\My Documents\BBBBBBB.xls")
'--
Dim LastRow As Long
With wk1.Worksheets("sheet2")
LastRow = wk1.Worksheets("sheet2").Range("B" & Rows.Count).End(xlUp).Row + 1
.Range("B" & LastRow).Value = wk2.Worksheets("sheet1").Range("B1").Value
.Range("C" & LastRow).Value = wk2.Worksheets("sheet1").Range("B3").Value
.Range("D" & LastRow).Value = wk2.Worksheets("sheet1").Range("B5").Value
.Range("E" & LastRow).Value = wk2.Worksheets("sheet1").Range("B7").Value
End With
End Sub
--
新規作成などのブックに上記を標準モジュールに張り付け、実行します。
読み込んだブックのSheet1における、コードで指定して書いたセルから読んで、新規ブックの指定セルに値を代入します。
--
ブックーシートーRangeという階層構造を丁寧に(上位オブジェクトの指定で、省略するとXXと看做すという、看做しの機能に頼って、略さず)書けば良いだけです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) なぜExit Subがあるのかわかりません 4 2023/02/19 12:34
- Visual Basic(VBA) 2つ目のコンボボックスが動作しません。 3 2023/03/25 12:29
- Visual Basic(VBA) excel2021で実行できないマクロ。どこを直したらいいのか 2 2022/03/28 03:40
- Visual Basic(VBA) Sheet「状況」から、分類の年齢別カウント数をSheet「D表」へ転記する下記マクロを作っています 7 2022/12/14 17:57
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Excel(エクセル) vba userformで漢字を全角カタカナに 2 2022/07/24 15:38
- Visual Basic(VBA) ローマ字、ハイフン付きの並び替え ローマ字抽出方法 Excelマクロ 4 2022/04/01 14:10
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Visual Basic(VBA) VBAコードが作動せず、どこに問題があるのか教えて下さい。 3 2023/06/13 13:20
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルの表示形式を保ったま...
-
excelのマクロでrangeの選択が...
-
Gメールの内容をスプレッドシ...
-
エクセルで別シートにある各々...
-
エクセルのIF関数がうまくいき...
-
エクセル 1つのセル毎に入力...
-
エクセルの関数を連続コピー
-
EXCELで2つの数値のうち大きい...
-
エクセル初心者です 関数の入れ...
-
エクセルで二つの数字の小さい...
-
Excelで隣のセルと同じ内容に列...
-
エクセルでオートフィルタのボ...
-
エクセルで時刻(8:00~20:00)...
-
エクセルで、2種類のデータを...
-
LOOKUP関数を使えばいいのでし...
-
PowerPointで表の1つの列だけ...
-
エクセルで最初のスペースまで...
-
SUMIFとCOUNTIFを合わせたよう...
-
エクセル 文字数 多い順 並...
-
VBAで文字列を数値に変換したい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルの表示形式を保ったま...
-
excelのマクロでrangeの選択が...
-
エクセル 1つのセル毎に入力...
-
Excel VBA For Each Next構文...
-
Excel2000 VBA ダブルクリック...
-
Excel VBAのComboboxのRemoveItem
-
Gメールの内容をスプレッドシ...
-
エクセルのIF関数がうまくいき...
-
EXCEL(エクセル)で0.001以下...
-
エクセルで重複するセルを削除...
-
エクセルの関数を連続コピー
-
EXCELで2つの数値のうち大きい...
-
Excelで隣のセルと同じ内容に列...
-
エクセルで二つの数字の小さい...
-
PowerPointで表の1つの列だけ...
-
エクセルで、2種類のデータを...
-
エクセルで最初のスペースまで...
-
エクセルでオートフィルタのボ...
-
エクセルのオートフィルタで最...
-
エクセルで時刻(8:00~20:00)...
おすすめ情報