• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルの入力方法についてです。)

エクセルの入力方法についての解説

このQ&Aのポイント
  • エクセルの入力方法について、既に数字が入力されているセルに他のセルの値をかける方法を解説します。
  • 具体的な例として、A2~A10のセルに数字が入力されている状態で、それぞれの数字にA1のセルの値をかける方法を説明します。
  • また、エクセルのバージョンが2003であり、マクロについては理解していないことを述べており、必要ならばマクロについて学習する意欲もあることを示しています。

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

  • ベストアンサー
  • fate1979
  • ベストアンサー率38% (25/65)
回答No.1

マクロは必要ないと思います。 列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

baffy55
質問者

お礼

ほかの方のやり方を試してみましたが このやり方なら確実でしたので、シートを工夫して このやり方でやってみようと思います。 ありがとうございました!

baffy55
質問者

補足

回答ありがとうございます 説明不足であったので申し訳ないのですが この方法だとBに相当する列(あるいは行)が必要になるので それではだめなのです。 上記の表でいうなら、B列無しに A1がドロップダウンのセル(仮に1とする) A2~A5に数字を入力 そのあとA1を1→2にするとA2~A5のセルの値が2倍される というものです。

その他の回答 (2)

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.3

一例です。 シートタブ上で右クリック→コードの表示→以下のコードを貼り付けてお試しください。 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

baffy55
質問者

お礼

回答ありがとうございます No.2のかた同様、効果はあるんですが 求めている形式にはなりませんでした。。 参考にして勉強してみます

  • xls88
  • ベストアンサー率56% (669/1189)
回答No.2

≫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

baffy55
質問者

お礼

回答ありがとうございます VBAをワークシートにあわせてコピペしてみたんですが 対象のセルがすべてドロップダウンになってしまいました。 コピーになっているため? こういう入力方法?もあるんですね。 勉強になりました

関連するQ&A