- ベストアンサー
エクセルの作表について
普通、数式が入っているセルに数字を入力すると、数式が無視されて入力した数字が表示されますが、セルに入力した時にその数字×3,000等の値を表示させることは可能でしょうか? 例えば、A1に3,000、B1に2,500、C1に4,000と入力している場合、A2に3と入力すればA2が9,000、B2に5と入力すればB2が12,500、C2に10と入力すればC2が40,000という感じです。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
可能ですが、VBAを使用することになると思います。 使用しているシートのシート名タブを右クリックして「コードの表示」を指定し、 表示されたコードウィンドウに下記コードを貼り付けます。 Private Sub Worksheet_Change(ByVal Target As Range) Dim R As Range Dim Rng As Range Set R = Intersect(Range("A2:C2"), Target) If Not R Is Nothing Then Application.EnableEvents = False For Each Rng In R If IsNumeric(Rng) And IsNumeric(Rng.Offset(-1)) Then _ Rng.Value = Rng.Value * Rng.Offset(-1).Value Next Rng Application.EnableEvents = True End If Set R = Nothing End Sub
その他の回答 (3)
- ja7awu
- ベストアンサー率62% (292/464)
> 例えばA2:C2、D2をとばしてE2:X2のような感じで何ヶ所かとばしたいのです。 Set R = Intersect(Range("A2:C2, E2:X2"), Target) で如何でしょうか。
お礼
できました! ja7awu様のおかげで表が完成しそうです。 VBAにも興味がわきましたのでいろいろ勉強しようと思います。 ありがとうございました。
- takafun55
- ベストアンサー率34% (78/228)
No1さんの言うようにVBAならば可能です。 でも、このような使い方は賛成しません。 A1に3,000、B1に3、C1に=A1*B1として3,000と表示した方が良いです。 印刷に困るというのでしたら、列を非表示にするとか印刷範囲の設定等ですれば良い事です。 入力値と表示値が違えば、あとあと面倒なことになってきますよ。
お礼
アドバイスありがとうございます。 >入力値と表示値が違えば、あとあと面倒なことになってきますよ。 それも考えたのですが、列が結構多い、毎日数字を入れ替えなければならない 、入れ替えたものを至急送付しなければならないなど、時間が限られていますので、入力すれば勝手に決められた値をかけてくれると助かるな~と思ったんです。
- mu2011
- ベストアンサー率38% (1910/4994)
通常の関数、書式設定では不可能です。 手動方式であれば、A1~C1をコピーし、A2~C2に「形式を選択貼り付け→乗算」貼り付けで可能です。
お礼
アドバイスありがとうございます。 こういう方法があったんですね。 勉強になりました。
お礼
ご回答ありがとうございます。 試してみたところ、出来ました!! VBAなど使ったことがない、じゃなく使い方も知らないので出来たときは感動しました^^ ただ、Set R = Intersect(Range("A2:C2"), Target)のセルの設定で、セルをとばす時はどのように設定すればよいのでしょうか? 例えばA2:C2、D2をとばしてE2:X2のような感じで何ヶ所かとばしたいのです。