エクセルVBA初心者です。
シート1の(A,1)にデジカメと表記があり、同じ行のB~Hの列にそれぞれの数字が入っていたとします。
それをシート2のA列の適当な行(例えばA,15)にデジカメという表記があった場合に、シート1の(B,1)~(H,1)の値をシート2の(B,15)~(H,15)にコピーする方法をご存じな方、教えて下さい。
単純なコピー&ペーストは「マクロの記録」で可能かと思いますが、シート2に「デジカメ」の項目があった場合に、シート1の元データから同じ「デジカメ」の項目を探しだし、コピーしたいのです。
なにぶん、初心者で勉強中なものですから、表記等適切でないものがありましたら申し訳ありません。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
>(B,15)
B15のセル、で判る。>(B,15)と表記するのはあまり見かけない。
それでこういう書き方をしているということは、エクセルそのものの使用経験が少ないのでは。そんなレベルでVBAをやるのは勧められない。
関数(VLOOKUP関数や、MATCH関数とINDEX関数の組み合わせで出来るだろう。
そういう問題の場合、順序として関数でやるものではないかな。
ーーー
VBAでやる場合
処理ロジック、というものをてんで質問に書いてない。これを質問者が独力で、生み出せるように訓練しないと、1問2問教えてもらっても、当面の問題に人に頼っただけ。
色色あると思うが
(1)総なめ法(存在する可能性のある対象全行をデジカメかとIF分で聞く)
(2)Findメソッドを使う(検索に当たる)。マクロの記録が採れてコードがどういうものかわかるが、FindNextとのからみが難しいので初心者には難しい。WEBには多数コード例がある。
「VBA Find」でWEB照会すること。
(3)VBAで関数VLOOKUP、MATCH関数などを使って、デジカメなどのあり場所(普通は行番号)を見つける。
Application.WorkshhetFunction
これでWEB照会のこと。
(4)エクセル操作のフィルタを、VBAで使う(マクロの記録が採れる)
ご回答ありがとうございます。
ご指摘を受けましたとおり、社会人となり初めてエクセルを利用し、
使用経験は一年程度です。
現在、会社では残業規制等で業務の効率化が進められており、担当業務
を少しでも短時間で終わらせるよう、藁にもすがる気持ちでネットで質問いたしました。
回答者様のおっしゃるよう、まだまだ勉強不足であることを実感しました。
回答者様の教えていただいた方法をヒントに、自分の力となるよう
勉強いたします。
アドバイス、身に染みました。
どうもありがとうございました。
No.2
- 回答日時:
Sheet2の1行目は見出しとします。
'-------------------------------------------
Sub Test()
Dim R As Long
Dim myCell As Range
Sheets("Sheet2").Select
For R = 2 To Cells(Rows.Count, "A").End(xlUp).Row
Set myCell = Sheets("Sheet1").Range("A:A").Find(Cells(R, "A").Value, , xlValues, xlWhole)
If Not myCell Is Nothing Then
myCell.Resize(1, 9).Copy Cells(R, "A")
End If
Next R
End Sub
'--------------------------------------------
以上です。
ご回答ありがとうございます。
プログラムまで回答いただき、大変感謝しております。
"A"というのは適切なセル番地を入れるという意味ですよね?
ご記述いただいたメソッド等を本で理解し、VBAでエクセルを動かせるようにします。
No.1
- 回答日時:
VBAを利用しなくてもExcelの関数で実現可能な場合もあります。
この場合A列(A,1デジカメ A,2○○ A,3 □□・・・)の内容が昇順で並んでいる場合はVLOOKUP関数で実現できます。
試しに質問内容通りにデータが入っているとした場合
シート2のB,15に
=VLOOKUP($A15,Sheet1!$A$1:$H$1,2,FALSE)
と入力してください。
どうしてもVBAで実現したいのであればまた回答できればいたします
ご回答ありがとうございます。
早速、VLOOKUP関数をためしてみました。
私のコピーしようとしている表は実際はもう少し複雑なため(デジカメの下にも同じようなフォームで「一眼レフ」という項目があると想像して下さい)多少苦労はしましたが、望んでいた結果を得ることができました。
勉強させていただき、ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA 最終行まで数式をコピーする 3 2023/01/03 15:44
- Visual Basic(VBA) Excel VBA 最終行を取得しVlookup関数をコピーする方法をコーディングで教えてください。 3 2023/05/11 13:14
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Excel(エクセル) VBA セルの値と同じ名前のシートにデータを貼り付けするやり方を教えてください 2 2022/05/17 16:26
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 11:27
- Excel(エクセル) エクセルのマクロでコピー後の貼り付け先を毎回指定したところにしたい 5 2022/08/12 10:47
- Excel(エクセル) シートが違う2枚のエクセルシートにある数値を別シートにコピーしたい(VBA?) 8 2022/03/31 12:24
- Excel(エクセル) Excelの複数ファイルの複数行を別ファイル1つのシートにVBA、マクロで集約する方法 5 2022/09/13 06:30
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Visual Basic(VBA) Excel vbaについて知恵もしくは、コード教えて下さいm(__)m ① 表にあるデータをコピー、 2 2022/09/01 23:57
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAで大量のファイルをシート名...
-
ExcelのVBAコードについて教え...
-
エクセルについて
-
ユーザーフォームに別シートか...
-
Vba 実数および実数タイプの変...
-
VBA 何かしら文字が入っていたら
-
Excelのマクロについて教えてく...
-
エクセルVBAについて
-
VB.net(VB)で、フォームにExcel...
-
ExcelのVBAコードについて教え...
-
CADシステムに図面番号を入力し...
-
FileCopy時のエラー
-
VBA 複数条件の分岐処理の上手...
-
VBAを使用した時間管理
-
ExcelVBA シート名を複数セルか...
-
【ExcelVBA】インデックスが有...
-
VBA 別ブックからコピペしたい...
-
VBA 同じ名前のオブジェクトを...
-
VBAの計算で@が出てしまう件
-
エクセルのマクロについて教え...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel VBA 定義されたプロージ...
-
Excel-VBAのmsgBox()の不思議
-
【VBA】マクロの入ったファイル...
-
VBA 複数条件の分岐処理の上手...
-
現在のブックを閉じないで、マ...
-
VBAで各列の"+"と"o"の合計数を...
-
VBAに詳しい方教えてください。
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
ユーザーフォームに別シートか...
-
エクセルのマクロについて教え...
-
ExcelVBA シート名を複数セルか...
-
エクセルのマクロについて教え...
-
VBA listBoxから
-
Excelのマクロについて教えてく...
-
エクセルのマクロについて教え...
おすすめ情報