- 締切済み
Excel一括割り算
Excelで一括で割り算がしたいです。 形式を選択して貼り付け(除算)すると結果だけが残るのですが 計算過程を残して一括計算できるでしょうか。 341650を1000で割る→ =(341650)/1000
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- kkkkkm
- ベストアンサー率66% (1725/2595)
以下を実行するイメージなのだと思いますが、実際はボタンクリックで実行するなどしないと実用にはならないと思います。 シートタブを右クリックして出たメニューのコードの表示で出た画面の右側にコードをコピペします。 コピペする画面のイメージや以下の「参照設定」の場所は添付画像を参考にしてください。 以下のサイトを参考にしてメニューの「ツール」「参照設定」から Microsoft Forms 2.0 Object Libraryを参照設定します。 Microsoft Forms 2.0 Object Library の選択肢がない場合の参照設定方法 https://excel.nj-clucker.com/references-ms-forms-obj-library/ 一括でセルの値を1000で割る場合 1000と記載されたセルをコピーして一括で割り算したいセルを選択して単に貼り付けします。 簡易なコードなので他の操作(空白のセルに貼り付けるなど)では不可思議な動作をすると思います。 341650を1000で割った場合 セルの表示は 341.65 数式バーの表示もしくはセルを編集モードにした場合のセルの表示は =(341650)/1000 Private Sub Worksheet_Change(ByVal Target As Range) Dim c As Range Dim ClipBoard As Variant ClipBoard = Application.ClipboardFormats If ClipBoard(1) = -1 Then Exit Sub End If With New MSForms.DataObject .GetFromClipboard If IsNumeric(.GetText) <> True Then Exit Sub End If Application.EnableEvents = False Application.Undo For Each c In Selection If c.Value <> "" And IsNumeric(c.Value) Then c.Formula = "=(" & c.Value & ")/" & Val(.GetText) End If Next End With Application.EnableEvents = True End Sub
- imogasi
- ベストアンサー率27% (4737/17069)
#2です。 追加説明で、質問の「>一括で」というところから推測すると、 いつも除数が一定なら、それを1000だとすると =siki(A1,1000)のように#2の式での、B1の引数の場所に、その数を直接入れてください。VBA関数のコードは変える必要なし。 =(32135/1000) ans 32.135 =(234/1000) ans 0.234 =(341650/1000) ans 341.65
- imogasi
- ベストアンサー率27% (4737/17069)
今まで見たことがない、変わった質問なのだが、思いついてやってみた。 VBAのユーザー定義関数だが、 VBE画面の、標準モジュールに Function siki(a, b) siki = "=(" & a & "/" & b & ")" & " ans " & (a / b) End Function を作り、 シート画面に,行って、 A1に 32135、B1に 10000 と、入れて C1に式 =siki(A1,B1) と入れると =(32135/10000) ans 3.2135 となった。C列で、下方向に式の複写もできます。 使ったセルの値を変えると即反応します。 ーー 例データ A,B、C列 32135 10000 =(32135/10000) ans 3.2135 234 2000 =(234/2000) ans 0.117 341650 1000 =(341650/1000) ans 341.65
- aokii
- ベストアンサー率23% (5210/22062)
形式を選択して貼り付けではなく、そのまま貼り付ければ、計算過程を残して一括計算できるはずです。計算過程?は、貼り付けを行ったそのセルを選択すれば、上部の表示欄に=(341650)/1000が表示されます。