アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセルで選択範囲の合計をクリップボードにコピーするマクロを作成し、メニューもしくはショートカットに割り当てようと思っています。
下記でやってみたのですが、うまくいきません。いい方法をご存知の方、ご教授願います。

Sub ClipSum()
Dim temp As Variant
temp = Application.WorksheetFunction.Sum(Selection)
Range("IV1").Value = temp
Range("IV1").Copy
Range("IV1").ClearContents
End Sub

A 回答 (6件)

こんにちは。



参照設定不要のこんな方法もあります。

' // セル選択範囲の合計をクリップボードにコピーする
Sub SendClipboardSample()
  If TypeOf Selection Is Range Then
    Dim s As Variant
    s = CStr(Application.Sum(Selection))
    CreateObject("htmlfile").parentWindow _
      .clipboardData.SetData "text", s
  End If
End Sub

以下、余談。

■ Microsoft Forms 2.0 Object Library について

VBA の標準コマンドには、クリップボードを扱う術がないため、

 ・ユーザーフォーム(のDataObject)を経由 (#1、#3ご回答)
 ・IE など外部プロセスのクリップボード操作インターフェース
  を経由する
 ・API で直接クリップボードのデータを転送・取得

などの手段が必要になる。

 # ここで言うクリップボードとは、Office クリップボード、
 # Range("A1").Copy などの VBA の Copy コマンドとは別物です

このうち、Microsoft Forms 2.0 Object Library は、ユーザー
フォームを挿入すれば自動的に参照設定される。
その後、ユーザーフォームを削除(解放)しても参照はそのまま
残っている。

ご参考までに。
    • good
    • 0
この回答へのお礼

だいぶ前の質問で、締め切ったあとの質問で申し訳ないのですが、ご存知であれば教えてください。

フィルタをかけていて、表示されているセルで選択範囲のみの合計をクリップボードにコピーしたいのですが、どうすればいいでしょうか。

今は、以下のようになっています。
1
2
3 X
4
5 X

でXになっている部分のみをフィルタして選択して実行した場合、3行目から5行目の全部が合計され計算結果が12となります。3と5だけを足して8としたいのですが、どうすればいいでしょうか。

お礼日時:2008/08/22 17:02

>#1のご回答は


>With ND
>.SetText kei
>と前にピリオドが要ります。

imogasiさん、フォローありがとうございます。
転記ミスでした。
失礼しました。
    • good
    • 0

#1のご回答は


With ND
.SetText kei
と前にピリオドが要ります。
#2のご回答もうまくいきました。
    • good
    • 0

ユーザーフォームのテキストボックスを媒介にした方法です。



Private Sub CommandButton1_Click()
With Me.TextBox1
.Value = Application.WorksheetFunction.Sum(Selection)
.SelStart = 0
.SelLength = Len(.Value)
.Copy
End With
End Sub
    • good
    • 0

御提示のコードだと、↓をしなかったらクリップボード


に格納されるようです。

>Range("IV1").ClearContents
    • good
    • 0

↓出いけると思います。



'参照設定:Microsoft Forms 2.0 Object Library

Sub clpb()
Dim kei As String
Dim ND As New DataObject
kei =Application.WorksheetFunction.Sum(Selection)
With ND
SetText kei
.PutInClipboard
End With
End Sub

この回答への補足

Microsoft Visual Vasicのウィンドウ(Alt+F11)からツールメニューから参照設定をしようと思いましたが、該当のものが見当たらないです。
参照設定の仕方について教えてください。

補足日時:2008/04/14 19:34
    • good
    • 0

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