- 締切済み
[Excel]セル選択時の合計値をクリップボードに送りたい
Excelで複数セルを選択した際、右下に数値の合計を表示することが出来ますが、この合計値をクリップボードに送り、ペーストすることは出来るでしょうか? sum関数等を利用するよりもさっと計算出来そうで便利だと思ったのですが…。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- merlionXX
- ベストアンサー率48% (1930/4007)
#1のmerlionXXです。 質問者の反応がないのはクリップボードを使わなかった#1の回答ではお気に召さなかったのかしら? VBAでクリップボードに送る方法をなんとか見つけましたので再度回答します。 ただし、'VBEの「ツール」-「参照設定」で「Microsoft Forms 2.0 Object Library」にチェックを入れてから使用してください。(そうしないとエラーになります) Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Count = 1 Then Exit Sub Dim myData As DataObject Dim myCb As Variant Set myData = New DataObject myData.SetText Application.WorksheetFunction.Sum(Selection), 1 myCb = myData.GetText If Val(myCb) = 0 Then Exit Sub Dim myYn As Integer myYn = MsgBox("選択セルの合計値 " & myCb & " を" _ & vbCr & "クリップボードに送りますか? ", vbYesNo + vbQuestion, "(⌒o⌒)?") If myYn = vbNo Then Exit Sub myData.PutInClipboard End Sub 複数セルを選択し、かつ、合計が0以外の場合に作動します。
- merlionXX
- ベストアンサー率48% (1930/4007)
1.該当のシートのタブを右クリックし、「コードの表示」を選択します。 2.出てきたVisualBasicEditor(白い部分)に下記のコードをコピペ。 '*****ここから下をコピペ***** Dim x As Variant Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim t As Long, c As Range If Target.Count = 1 Then Exit Sub For Each c In Target If IsNumeric(c) Then t = t + c Next x = IIf(t > 0, t, "") End Sub Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) Dim myYn As Integer If x = "" Then Exit Sub myYn = MsgBox(x & "を貼り付けますか?", vbYesNo, "(⌒o⌒)?") If myYn = vbYes Then Target = x End If Cancel = True End Sub '*****ここより上までをコピペ***** 3.AltキーとF11キーを同時に押してワークシートへもどります。 これで、そのシートでは、複数セルを選択した際、合計を取得し、右クリックにより当該シート内であれば貼り付けることが出来ます。