エクセル2007にて手動で数値入力をしています。
効率の悪い方法なのですが、
入力方法自体はこのまま、変えずにやりたいと思っています。
入力内容は、例えば 100x20ほどのセルのあるところ、空白のところに「2」と入れたり
しばらく後に先ほどの「2」のところに「=2+4」と付け足したり
さらにしばらく後に「=2+4+5」と付け足したりしています。
「したいこと」はある程度入力が進んだところで、
100x20ほどのセルを「マウスなどで選択」し、その選択した範囲のセルの中身の
「=2+4+5」のセルを計算し「=11」に置き換え、(左に”=”を付けたい)
「3」や「=3」「=+3」のセルを「=3」に置き換え、(やはり左に”=”を付けたい)
ただし「空白」のセルは「空白」のままにして置きたいのです。
Q1)上記の「したいこと」をVBAでできるでしょうか
Q2)Q1に加えて 「0」のセルは「=0」と置き換えられるでしょうか
Q3)間違ってイコール無しで入力した「1+2+3」も計算して「=6」(左に”=”)にできるでしょうか
Q4)VBAで実際に動くものを組んでもらえないでしょうか
後々、最終的には自分で勉強してVBAを組めるようになりたいのですが
今必要なのは上記の操作のみなので、実際にVBAで作成したものが欲しいです。
現在はマウスで選択、形式選択(値)貼り付けして、手動でその都度”=”を付け足しています
No.2ベストアンサー
- 回答日時:
Sub macro1()
Dim h As Range
Dim Target As Range
On Error Resume Next
Set Target = Selection.SpecialCells(xlCellTypeConstants, xlNumbers)
If Target Is Nothing Then
Set Target = Selection.SpecialCells(xlCellTypeFormulas, xlNumbers)
Else
Set Target = Union(Target, Selection.SpecialCells(xlCellTypeFormulas))
End If
For Each h In Target
h.Formula = "=" & Application.Evaluate(h.Formula)
Next
End Sub
簡易版です。なので,ご質問で明記されていない入力内容が選択範囲内にあった場合は,意図しない結果となるかもしれません。
駄目な例:
="a"
と記入されていた場合など。
No.4
- 回答日時:
多分質問者のやろうとしていることは、数を数式にVBAで変化させ、入力待ちにして、何かの数を人間の入力で入れて計算(質問では加減どまりらしい)をしたい。
初心者の考えそうな珍奇な方法だな。
>100x20ほどのセルのうち、
質問の操作の対象セルはどうなるを書かないと質問にならないのでは。
そのセルを選択(決める)条件は何なのか。質問者の(総合的?)判断で無いと判ら無いのか?
ーー
質問の主旨を間違えていなければ、私の思いついた「珍奇な」方法
(1)テキストボックスを1つシートに設ける
(2)シートのSelection_Changeイベントに
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ActiveCell.Formula = "=" & Val(Target.Value) & "+" & Val(TextBox1.Text)
End Sub
判らなければGoogleで「Worksheet_SelectionChange」で照会し勉強のこと。
===
テキストボックスに、加える数を入力。毎セルに置いて、先に行うこと(忘れやすいから注意)。引き算したい場合はマイナスをつけて入力。
シートのセルをクリック
そのセルの値にテキストボックスの値を加えた数をそのセルに設定(自動計算)。
空白のセルは0の扱い。テキストボックスも空白は0の扱い。
ーー
数式バーへのVBAによる入力のコントロールの方法が判らない(高等技術?API?)ので上記で辛抱。
回答ありがとうございました。
自分の説明が悪くてわかりづらくてすいませんでした。
自分でも今の入力の方法がアナログな効率の悪いものだと自覚しており、
今回の回答を参考に勉強させていただきます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) VBA 特定の列に入っているテキストをコピペ 2 2023/06/14 11:24
- Excel(エクセル) ユーザー定義について質問です。 2 2023/06/28 13:21
- Excel(エクセル) エクセルでシート保護のかかり方の違いとセルの非保護の設定 3 2022/08/09 10:02
- Excel(エクセル) マクロVBA別Excelブックにデータ転記 2 2022/07/10 23:35
- Excel(エクセル) VBA オリジナル関数で選択セルの合計を作成したい 3 2023/03/19 19:45
- Visual Basic(VBA) VBAコードを張り付け後のエクセルの進め方 2 2023/02/07 18:24
- Excel(エクセル) エクセルVBA 任意のセルの選択時、指定のセルの値を表示 1 2023/04/21 08:13
- Excel(エクセル) エクセルVBA 作業後に選択範囲を解除する方法 5 2023/02/17 07:13
- Visual Basic(VBA) エクセルVBAで『A列』に新規で数値を入力し『B列』から右方向の空白セルにその値を貼り付ける方法 4 2022/11/05 08:37
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
A1セルに入力したら、入力時間...
-
Excelで同じセルに箇条書きをし...
-
参照先セルに値が入っていない...
-
IF関数で0より大きい数値が入力...
-
エクセルで時間の判定をしてい...
-
空白でないセルの値を返す方法...
-
値を入力後、自動的にアクティ...
-
エクセルで既に入力してある文...
-
excel 関数にて文字を0として認...
-
マクロ無しで時間自動で記入を...
-
yyyy/mm/ddからyyyy/mmへの変換
-
エクセルで入力時間を更新させ...
-
エクセルの数式がかぶって、選...
-
エクセル セルに━ (横棒)を入...
-
Excelで配列数式を入力できない
-
マイナス同士の前年比
-
エクセルで、特定のセルの内容...
-
Excelでセルに入力されたカラー...
-
IF関数1と6なら「〇」それ以...
-
エクセル:コメントのようなも...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
A1セルに入力したら、入力時間...
-
Excelで同じセルに箇条書きをし...
-
参照先セルに値が入っていない...
-
IF関数で0より大きい数値が入力...
-
Excel:文字と数字の組合せ、次...
-
エクセルで既に入力してある文...
-
値を入力後、自動的にアクティ...
-
エクセルの数式がかぶって、選...
-
エクセルで時間の判定をしてい...
-
空白でないセルの値を返す方法...
-
Excelでセルに入力されたカラー...
-
yyyy/mm/ddからyyyy/mmへの変換
-
入力したところまでを自動的に...
-
excel 関数にて文字を0として認...
-
バーコードが読み取れない原因...
-
エクセルで複数の条件で掛け算...
-
ExcelVBAでセルを編集状態にす...
-
エクセルで、特定のセルの内容...
-
【vba】指定範囲の中に任意の文...
-
エクセルで10分ごとの時刻の...
おすすめ情報