- ベストアンサー
エクセルで数字をセルに入れて倍数にしたい
ちょっと分かり難いタイトルで申し訳ありません。 エクセルで、「あるセルにある数字を入力すると、その数字を倍にした数字となる」ということは可能でしょうか? 例えば、A1のセルに、「1」と入れた場合に「1」と表示するのではなく、倍の「2」として結果を返すようにしたいのです。 A1に「1」を入れて、A2で「2」と返されるのではダメです。 表のフォームが決まっているので、それを変更しないで処理したいのですが、どうにも上手い方法が見つかりません。 ユーザー定義で「0*2」(任意の数字を入れたら2を掛ける、の意図)としたのはダメでした。 よいお知恵がありましたら、お願い致します。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
入力したセルをそうしたいのであれば、関数では不可能ですね。 VBAでやってみました。簡単ですので以下の手順を試してみてください。 1.シートのタブを右クリックし、「コードの表示」を選択。 2.出てきたVisualBasicEditor(白い部分)に下記のコードをコピペ。 '*****ここから下をコピペ***** Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address <> "$A$1" Then Exit Sub If Selection.Count > 1 Then Exit Sub Application.EnableEvents = False On Error GoTo line If IsNumeric(Target.Value) Then Target.Value = Target.Value * 2 line: Application.EnableEvents = True End Sub '*****ここより上までをコピペ***** 3.Alt+F11キーでワークシートへもどります。 さあ、A1に数字を入れてみてください。( ̄ー ̄)v
その他の回答 (3)
- imogasi
- ベストアンサー率27% (4737/17069)
これはエクセル関数では絶対できません。 セルの値を使って演算して、元のセルに戻すと式が壊れますので、どうしてよいかわからなくなるのです。 一旦別変数に退避して、その数を使って演算し、セルにセットできるVBAなら簡単です。 ただデータが変化したときを捉えて、演算をする必要があるので、イベントという仕組みを(Changeイベント)を使わざるを得ません。 エクセル関数の2+1大原則 (1)セルの値を使い関数演算して戻すことはできません (2)関数は、値しか処理できません(値?値以外に、どんなものが あるか関心を持ったことがありますか。 (3)エクセルの日付・時刻は日付シリアル数、24時間を1とする数である。
お礼
そうですね。関数では出来ません。レクチャーどうも多謝です。
- maron--5
- ベストアンサー率36% (321/877)
◆表示形式による方法です 入力した数字の2倍が表示される方法です 1)表示形式を「ユーザー定義」で、 #/2 とする 2)/2の前を指定して、、 Ctrl を押しながら、J を押す 3)[配置]の「折り返して全体を表示」にチェック 注)入力数字が4~5桁になると、###### になるケースがあります
お礼
ありがとうございました。 ですが表示で2倍になっても実態が違うので計算には使えませんでした。 残念でしたが。
- mshr1962
- ベストアンサー率39% (7417/18945)
>さらに複数のセルを同じように設定するにはどうしたらよいのでしょうか? 範囲の指定でいいなら A1とA10 If Target.Address <> "$A$1" And Target.Address <> "$A$10" Then Exit Sub -処理- A列全部 If Target.Column <> 1 then Exit Sub -処理- A1:A10の範囲 If Target.Column = 1 then If Target.Row >= 1 And Target.Row <=10 then -処理- End If End If If以外で判定なら Select Case Target.Address Case "$A$1","$A$10" -処理- End Select
お礼
ありがとうございました。
お礼
ありがとうございました!出来ました! VBAは敬遠していたのですが、これを機会に勉強し直してみたいです。
補足
さらに複数のセルを同じように設定するにはどうしたらよいのでしょうか? 2行目のセル指定をコロンなどで$A$10と繋いでみたのですが、うまく行きませんでした。