- ベストアンサー
エクセルの入力方法についての解説
- エクセルの入力方法について、既に数字が入力されているセルに他のセルの値をかける方法を解説します。
- 具体的な例として、A2~A10のセルに数字が入力されている状態で、それぞれの数字にA1のセルの値をかける方法を説明します。
- また、エクセルのバージョンが2003であり、マクロについては理解していないことを述べており、必要ならばマクロについて学習する意欲もあることを示しています。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
マクロは必要ないと思います。 列Bを作り、基本値を入れ込みます。 列Aで数式を作り、それぞれドロップダウンするA1と掛け算させます。 ※「A$1」は、下にコピペしたときに、「1」の値を変えさせないためです。 | A |B 1| 2 |なし 2| =A$1*B2 |3 3| =A$1*B3 |3 4| =A$1*B4 |5 5| =A$1*B5 |10
その他の回答 (2)
- mu2011
- ベストアンサー率38% (1910/4994)
一例です。 シートタブ上で右クリック→コードの表示→以下のコードを貼り付けてお試しください。 Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, Range("A1")) Is Nothing Then Exit Sub For Each c In Range("A2:A10") If IsNumeric(c) And c <> "" Then c.Value = c * Range("a1") End If Next End Sub
お礼
回答ありがとうございます No.2のかた同様、効果はあるんですが 求めている形式にはなりませんでした。。 参考にして勉強してみます
- xls88
- ベストアンサー率56% (669/1189)
≫VBAの例です。 シート見出しを右クリック>コードの表示>表示されたコードウインドウに下記コードをコピペ 「形式を選択して貼り付け」から「演算」の「乗算」が実行されます。 コードは上記操作を「新しいマクロの記録」で得られたコードを編集しました。 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address <> "$A$1" Then Exit Sub Target.Copy Range("A2:A4").PasteSpecial _ Paste:=xlPasteAll, Operation:=xlMultiply, _ SkipBlanks:=False, Transpose:=False Application.CutCopyMode = False ActiveCell.Select End Sub ワークシートのイベントプロシージャ http://excelvba.pc-users.net/fol3/3_6.html
お礼
回答ありがとうございます VBAをワークシートにあわせてコピペしてみたんですが 対象のセルがすべてドロップダウンになってしまいました。 コピーになっているため? こういう入力方法?もあるんですね。 勉強になりました
お礼
ほかの方のやり方を試してみましたが このやり方なら確実でしたので、シートを工夫して このやり方でやってみようと思います。 ありがとうございました!
補足
回答ありがとうございます 説明不足であったので申し訳ないのですが この方法だとBに相当する列(あるいは行)が必要になるので それではだめなのです。 上記の表でいうなら、B列無しに A1がドロップダウンのセル(仮に1とする) A2~A5に数字を入力 そのあとA1を1→2にするとA2~A5のセルの値が2倍される というものです。