- ベストアンサー
エクセル こんなことは無理ですか?
あるセルに数字を貼り付けた場合に、表示される数値を一定の値を加えたものにしたいのです。 例えば200を貼り付けると50を足して250、220なら50を足して270というように表示させる方法があれば教えてください。 そんな方法はないという回答でも結構です。 よろしくお願いします。
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
貼り付けるセル幅を最小限にし、表示は隣のセルにする C3にはりつけるなら D3に 数式 =C3+50 を設定する C3のフォントサイズを1にする C3に200を貼り付けれ D4に 250 と表示され C3には小さい文字で 200 または ##と表示されます
その他の回答 (7)
- tsubuyuki
- ベストアンサー率45% (699/1545)
出来ないことは無いと思いますが、 マクロを使用する手段しか思い浮かびません。 Private Sub Worksheet_Change(ByVal Target As Range) With Target ' 変更されたセルの If .Row = 1 And IsNumeric(.Value) = True Then ' 行が1、中身が数字だったら Application.EnableEvents = False ' ループを避けるためイベント停止 .Value = .Value + 50 ' 処理(これだと、中身に+50) Application.EnableEvents = True ' イベント有効 Else '条件に合わなかったら Exit Sub ' マクロ終了 End If End With End Sub これを該当シートのモジュールに貼れば何とかできます。 .Row = 1 これが「1行目」の意味ですので、 .Column = 1 とすると「1列目=A列」と言う意味に、 .Range("A1") とすると「A1セルのみ」と言う意味に、 .Range("A1:A5") だとA1セルからA5セルの間、と言う意味で使えます。 ただしこれは「書き換えたくないのに書き換わる可能性もある」手段ですから、 使うときは慎重に検討された方が良いと思います。
お礼
マクロも将来は挑戦したいと思っています。 有難うございました。
- CC_T
- ベストアンサー率47% (1038/2202)
循環参照にあたるので、関数や書式といったシート状の通常操作で同一セルの値を改変するのは無理でしょう・・・たぶん。 ただし、入力でなく貼り付けですから、「形式を選択して貼り付け」の中の「演算:加算」がギリギリ使えるのでは? もともと50を入力したセルに、200を「加算」で貼り付けると、そのセルの値は250になります。この場合は表示だけでなくセルの値自体も250に変化しているので、も一度同じセルに200を「加算」貼り付けすると450になります。 あるいは、「イベントプロシージャにマクロを登録し、セルの値更新時に自動実行させてセルの値に一定値を加算する」ことですね。操作によってセルの値が更新されたらまずは変更されたセルの値を変数に読み込み、加算してセルの値を上書きするって流れになるかな。 マクロが分からないなら手出ししない方が良いですけど、興味があれば「Visual Basic」か、「エクセル」のカテゴリーあたりで質問してみてはどうでしょうかね。
お礼
マクロも将来は挑戦したいと思っています。 有難うございました。
- KURUMITO
- ベストアンサー率42% (1835/4283)
同じするの中で入力した数値に50をプラスするといったことはマクロでなければできませんね。 しかし次のようなことはできます。 例えばA1セルからA10セルまでにデータが入力されており、そのデータに50をプラスした値にするとしたら、どこか関係のないセルに50を入力してコピーします。 その後にA1からA10セルを選択して右クリックし「形式を選択して貼り付け」で「加算」にチェックをして貼り付けます。
お礼
早速ご回答いただき、有難うございました。 やはりマクロが必要なのですね。 すでにデータが入力されている場合は一括して加算できる方法を教えていただき有難うございました。
- since_1968
- ベストアンサー率24% (254/1053)
貼付たいセルに50(数値)が事前に入っていれば、貼付ける際に「形式を選択してペース」から「加算」を選んで貼付けを行えば、出来ます。 A列 B列 入れてB列に「加算」でペースト 200 50 220 50
お礼
ご回答、有難うございました。 なるほど、少し手間は掛かりますがこの方法もありますね。
- WWolf
- ベストアンサー率26% (51/192)
こんにちは。 VBAを使用しますが・・・ VBE(Alt+F11)を起動し、Sheet1に下記をコピペ Private Sub Worksheet_Change(ByVal Target As Range) lr = Range("A65535").End(xlUp).Row Application.EnableEvents = False For i = 1 To lr Cells(i, 1).Value = Cells(i, 1).Value + 50 Next Application.EnableEvents = True End Sub あとは、シート1のA1に数値を貼り付け。 上記例は、A列のみですが、必要があればコードを変更しお使いください。
お礼
早速ご回答いただき、有難うございました。
補足
回答、有難うございます。 エクセル初心者の私には内容は上級すぎますが、 VBE(Alt+F11)を起動して、次にSheet1に下記をコピペするということが分かりません。 VBE(Alt+F11)を起動すると灰色の画面になりますが、ここにコピペではないですよね? Sheetのどこに貼り付けるのでしょうか? よろしくお願いします。
- imp0826
- ベストアンサー率0% (0/1)
同一セル内に書き換えるということであれば、マクロを組むという面倒な手順しかわからないです。 すみません。
お礼
早速ご回答いただき、有難うございました。 やはりマクロが必要なのですね。 参考になりました。
- imp0826
- ベストアンサー率0% (0/1)
例えばA1に数値を打ち込み、となりに50をたした数値を出すということであれば、 A2あるいはB1に =A1+50 と数式を入れておけば大丈夫です。
補足
早速のご回答、有難うございます。 やはり私の質問のようなことは出来ないのでしょうかね。 同一セル内でバックグラウンドで計算して表示させることは、エクセルではダメですか?
お礼
数値を貼り付け1回で加算の結果を表示するには、初心者の私には教えていただいたこの方法が最善でした。 有難うございました。