プロが教える店舗&オフィスのセキュリティ対策術

Excelで複数セルを選択した際、右下に数値の合計を表示することが出来ますが、この合計値をクリップボードに送り、ペーストすることは出来るでしょうか?

sum関数等を利用するよりもさっと計算出来そうで便利だと思ったのですが…。

A 回答 (2件)

#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以外の場合に作動します。
    • good
    • 1

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キーを同時に押してワークシートへもどります。

これで、そのシートでは、複数セルを選択した際、合計を取得し、右クリックにより当該シート内であれば貼り付けることが出来ます。
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!