- ベストアンサー
エクセルマクロでの参照の仕方
- エクセルマクロを使用して、特定のセルのデータを参照する方法について教えてください。
- データが入力されたセルを参照して、他のセルにデータを入力する方法について教えてください。
- セル内の文字列をセルの対象として使用する方法について教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
関連するQ&A
- エクセルマクロ:範囲の選択
マクロで範囲を指定したいのですが、 dataと名づけたシートA1に例えば8という値、A2に20という値があります。 この数字は他のセルから参照する計算式になっていて再計算をするたびに変わります。 この時、C8:E20の範囲を指定したいのですが、やみくもに Dim c As Integer c = 3 'C列 Range(Cells(Sheets("data").Range("A1").Value, c), Cells(Sheets("data").Range("A2").Value, c + 2)).Select Selection.Copy などと書いてみたのですが、うまくいきません。 どのように記述すればよいか、教えてください、宜しくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- エクセルのマクロで、セルの値を参照してジャンプ
エクセルのマクロで、セルの値を参照して、 別シートにジャンプして貼り付けたいと思っています。 <Sheet1> | A B C ------------------------------------ 1| A1 あ 100 2| B5 い 50 3| C7 う 80 4| D3 え 20 5| E9 お 40 <Sheet2> | A B C D E ------------------------------------ 1| あ 2| 100 3| え 4| 20 5| い 6| 50 7| う 8| 80 9| お 10| 40 といったイメージです。(お分かり頂けますか?) Sheets1!B1:C1を選択し、A1のセルの値を参照して、Sheets2!A1にジャンプして、 行列入れ替えて貼り付ける、といったマクロを組みたいのですが、 セルの値を参照する部分が分かりません。 実際はSheets2の様なシートは複数あり、1つのリストから複数の形式を変えた表を 作りたいと思っています。 Sheets2以降のシートに見出し行を加え、VLOOK関数を組み込んだ表を作っておき、 結果を貼り付けて見出し行を削除する、といったマクロは組めるのですが、 セルを参照してジャンプして貼り付けてくれると便利だと思い質問させて頂きました。 どなたかお知恵を拝借できましたら嬉しいです。 宜しくお願い致しますm(_ _)m
- ベストアンサー
- オフィス系ソフト
- Excel VBAで…。
データーシート(1)のデータをレイアウトシート(2)に転記するのに 例えば sheets(1).range("A1").value=sheets(2).range("C5").value sheets(1).range("B1").value=sheets(2).range("C6").value sheets(1).range("C1").value=sheets(2).range("C7").value と言うように配置しているのですが もし、シート(1)セルB1の値が空白ならば シート(1)セルC1の値はシート(2)のセルC6に配置・・・ と言うように データがない場合は、転記後の配置は詰めて配置したいのです。 どうすればよろしいでしょうか?
- ベストアンサー
- オフィス系ソフト
- Excelセルの参照
Excelにdataとnという2シートがあります。dataシートのA列3行目~22行目にデータが縦入力されており、以降B列、C列とデータ入力が繰り返されます。 nシートでdataシートの入力値参照のため、あらかじめdataシートの参照リンクを貼っておきたいのですが、nシートのデータは横並びであるせいか、参照リンクをうまくコピーすることができません。 dataセルのA3セルの値をnシートのD1に=data!A3と貼り付けて、W1(=data!A22)まで数式を自動コピーできないでしょうか。また、D2~W2まで=data!B3~=data!B22など参照リンクをコピーで作成できないでしょうか。 よろしくお願いいたします。 横並びに参照する必要があるのですが、
- ベストアンサー
- Excel(エクセル)
- エクセルでのマクロを使った参照
教えてください。 シート1のB23:F73のデータをシート2に張りつけたいのですが、 その際にB列には連番で1~50の数字が入っており C、D列にはデータが有る場合とない場合があります。 データがある場合は必ず対で存在します。 貼り付けの際にC、D列にデータのある行のみ B、C、D列のデータを連続で並ばせたいのですが、 どのようにマクロを組んだらよろしいですか? 手元に資料もなく、困ってしまいました。 よろしくお願いします。 現在のマクロは以下の通りです Sub TEST4() Dim S1 As Worksheet, S2 As Worksheet Set S1 = Worksheets("SHEET1") Set S2 = Worksheets("SHEET1") S2.Range("A1:E51").Value = S1.Range("B23:F73").Value End Sub
- ベストアンサー
- オフィス系ソフト
- エクセルVBAマクロの質問です。
マクロ初心者です。行き詰まってます。 sheet1には300件程度のデータがあります。 このデータの3列目の値を、VLOOKUPでsheet3のA1:B30範囲から参照します。そこで取得した回数分、sheet1の各行のデータをsheet2にコピーしたいんです。 そこで、コード文を作ってみましたが、マクロがうまく動きません。 すみませんが、お知恵を貸していただけないでしょうか? Dim Z as Long Dim L As Long Dim P As Long Dim Kensaku As String Dim M4 As Range Dim PRow As Long Dim i As Long Set M4 =Sheets(“sheet3”).Range(“A1:B30“) L = Sheets(“sheet1”).Range(“A1”).End(xlup).Row For Z = 1 to L-1 Kensaku = Sheets(“sheet1”).Cells(Z+1,3).Value P=Worksheetfunction.Vlookup(Kensaku,M4,2,False) For i = 1 to P Prow=Sheets(“sheet2”).Range("A1").End(xlDown).Row Sheets(“sheet1”).Rows(Z+1).Copy Sheets(“sheet2”).Rows(Prow) Nexti Next Z
- 締切済み
- Visual Basic
- マクロで教えてください。
sheet1のA列にある図番を参照しsheet2のA列の機種名に適合する行全体に sheet1のB列にある色を塗りたいのですが、マクロを教えていただけますでしょうか? sheet2のBのセル色を塗るマクロはわかりました。↓です。 Sub macro1() Dim c As Range, myR As Variant With Sheets("Sheet2") For Each c In .Range("a2", .Cells(Rows.Count, "a").End(xlUp)) myR = Application.Match(c.Value, Sheets("sheet1").Columns(1), 0) If Not IsError(myR) Then c.Offset(, 1).Interior.ColorIndex = Sheets("sheet1").Cells(myR, "B").Interior.ColorIndex End If Next End With End Sub 上記マクロですとBセルのみ色が塗られてしまうので行全体を塗るマクロを教えてください。 よろしくお願い致します。
- ベストアンサー
- オフィス系ソフト
- エクセルマクロの使い方。繰り返し参照の仕方について
セルに他のシートの数式を参照して繰り返し入力したいのですが、 どうしてもエラーが出てしまいます。教えて下さい。 Sheets("集計結果").Select Dim x As Integer Dim y As Integer For x = 2 To 100 For y = 2 To 700 Step 7 x = 2 y = 2 Range("C" & x).Select Worksheets("集計結果").Range("C" & x).Formula = Worksheets("条件").Range("G" & y) Next y Next x どこが悪いのでしょうか?
- ベストアンサー
- その他MS Office製品
- エクセルVBAマクロの質問です。
マクロ初心者です。 データ処理のマクロを作ろうとしていて、ちょっと困ってます。 (sheet1) 11 国総 1A (空きセル ) 12 化基 2I (空きセル) ・ 以下、200程度のデータ C列のデータの種類は10種類 (sheet2) 1A 2 101 102 2I 3 103 104 105 ・ ・ sheet1のC列と同じデータ C列より右側のデータ数は1から4個程度 (sheet3) データなし sheet1のデータを、sheet3にコピーする際に、各データのD列に、sheet2のC列の右側のデータを入れていきたいんです。具体的には (sheet3) 11 国総 1A 101 11 国総 1A 102 12 化基 2I 103 12 化基 2I 104 12 化基 2I 105 っていう感じです。先日、こちらのカテゴリでなく、間違えてVBAプログラムの方に質問して、「板違いですよ」と諭されながらも、ご協力いただきsheet2の件数分増やしてコピーするコードまではたどり着いたのですが、その後、どうすればD列に移せるのかで悩んでます。ちなみに、いまたどりついたコード文は以下の通りです。 一度、このコード文の続きで、sheet3のC列を条件カウントするコードを作ってみたんですが、動いてくれませんでした。 Sub Re8928577a() Dim M4 As Range Dim P As Variant ' WorksheetFunction.VLookup Dim Kensaku As String Dim L As Long Dim PRow As Long Dim i As Long Dim Z As Long Set M4 = Sheets("Sheet2").Range("A1:B30") L = Sheets("Sheet1").Cells(Rows.Count, "A").End(xlUp).Row ' For Z = 1 To L - 1 Kensaku = Sheets("Sheet1").Cells(Z + 1, 3).Value P = WorksheetFunction.VLookup(Kensaku, M4, 2, False) PRow = Sheets("Sheet3").Cells(Rows.Count, "A").End(xlUp).Row For i = PRow + 1 To PRow + P Sheets("Sheet1").Rows(Z + 1).Copy Sheets("Sheet3").Rows(PRow + 1).Resize(P) Next i Next Z End Sub
- 締切済み
- Excel(エクセル)
- Excel マクロ 改行数を求めたい
いつもお世話になってます。 今Sheet1のC列のデータをSheet2のD列に移すマクロを作っていますが、 Sheet1には1~4行位のセルもあり、それを1行毎に分割してコピーしたいと考えています。 Splitで分割してみたのですが、 tmp = Split(Range("C1"), chr(10)) Sheets("Sheet2").Select Range("D9")=tmp(0) Range("D10")=tmp(1) Range("D11")=tmp(2) Range("D12")=tmp(3) といった感じにすると 改行数が1~3の場合、エラーが出てしまいます。 (実際にはC列にデーターがある分だけ上記を繰り返します。) そこで改行数を求めようとしましたが、 a = InStr(Range("C1"), chr(10)) これでは何行あっても数値(この場合は"a")が10になってしまい、うまくできません。 何かいい手段がありましたらご教授願います。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
お礼
早速の回答ありがとうございました。 おかげさまで出来ました。 マクロは独学で勉強していて分からないことが多いため、また質問させていただくかも知れませんが、その時にはまたよろしくお願いします。