• ベストアンサー

エクセルマクロで一括表示

エクセルマクロで一括表示 (マルチメディアのUPの不具合で改めてこちらに質問させていただきました) 全国の送料の計算で、 県名、サイズ、送料を一気に表示させたいのですが、 送料などを記載したデーターベースを用意しておいて、 例えば、送料をクリックしたときに、マクロか関数で、 H2からJ2に、発送先、サイズ、送料を表示させたいのですが、 どうすればよいでしょうか。 *発送先などは2段にわけてしまいました。

質問者が選んだベストアンサー

  • ベストアンサー
  • DOUGLAS_
  • ベストアンサー率74% (397/534)
回答No.3

>*発送先などは2段にわけてしまいました。 とのことですが、下記の様なことでいけるかと存じます。  概ね #2 さんがお書きの コード で問題はないかと存じますが、複数の セル範囲 を選択したときと、1行目を選択した時に エラー が生じるようですので、イイトコドリ してください。  当該セル範囲以外を選択した時には、「H2からJ2」を クリア するようにしました。 1)「送料などを記載したデーターベース」の シート の シートタブ を [右クリック] - [コードの表示(V)] を クリック します。 2)現れた【Microsoft Visual Basic - {ブック名} - [{シート名} (コード)]】の コードウィンドウ に 下記コード を コピペ します。  「Option Explicit」と書かれていれば、その下に コピペ すれば結構です。 3)[Alt] + [F4] で(2)の ウィンドウ を閉じます。 4)以上で、B・C・E・F列の「送料」が入力された1つの セル を クリック すると、 >H2からJ2に、発送先、サイズ、送料を表示さ れます。 '-- これ以下を コピペ してください。-------------------- Private Sub Worksheet_SelectionChange(ByVal Target As Range)  Dim myTbl  Range("H2:J2").ClearContents  If Target.Count <> 1 Or Target.Row < 3 Then Exit Sub  If Target.Value = "" Then Exit Sub  If Target.Column > 3 Then myTbl = 3  Select Case Target.Column   Case 2, 3, 5, 6    Range("H2").Value = Cells(Target.Row, 1 + myTbl).Value    Range("I2").Value = Cells(2, Target.Column).Value    Range("J2").Value = Target.Value  End Select End Sub

atk18
質問者

補足

できました!回答くださったみなさまありがとうございます! さっそく使っています!

その他の回答 (3)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.4

こんばんは! 一例です。 ↓のコードを操作したいSheet見出し上で右クリック → コードの表示 を選択し、 コピー&ペーストしてみてください。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim i, j As Long i = Target.Row j = Target.Column If Target.Value = "" Or j = 1 Or j = 4 Or i = 2 Then Exit Sub If Target.Column <= 3 Then Cells(2, 8) = Cells(i, 1) Else Cells(2, 8) = Cells(i, 4) End If With Cells(2, 8) .Offset(, 1) = Cells(2, j).Value .Offset(, 2) = Target.Value End With End Sub 以上、参考になればよいのですが・・・m(__)m

  • nattocurry
  • ベストアンサー率31% (587/1853)
回答No.2

シートモジュールに、 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Value <> "" And Target.Row >= 3 And Target.Column <= 6 And (Target.Column - 1) Mod 3 > 0 Then Range("H2").Value = Target.Offset(, ((Target.Column - 1) Mod 3) * -1).Value Range("I2").Value = Target.EntireColumn.Cells(2).Value Range("J2").Value = Target.Value End If End Sub

  • DOUGLAS_
  • ベストアンサー率74% (397/534)
回答No.1

>例えば、送料をクリックしたときに、マクロか関数で、 >H2からJ2に、発送先、サイズ、送料を表示させたい  お尋ねの意味合いが判然としませんが。。。  例えば、セル C5 を クリックしたときに、 「H2からJ2」に、それぞれ、「神奈川」・「80」・「\800」 と表示されるようにしたい という意味でしょうか?

atk18
質問者

補足

はい!そうです。よろしくお願いいたします。

関連するQ&A