「user3616725」からの回答に関連して発生する可能性のある問題:
Windows 8.1でのIM、「user3616725」からの承認済み回答からのリンクされたVBAコードに問題があるようです:
Sub CopyCellContents()
' !!! IMPORTANT !!!:
' CREATE A REFERENCE IN THE VBE TO "Microsft Forms 2.0 Library" OR "Microsft Forms 2.0 Object Library"
' DO THIS BY (IN VBA EDITOR) CLICKING TOOLS -> REFERENCES & THEN TICKING "Microsoft Forms 2.0 Library" OR "Microsft Forms 2.0 Object Library"
Dim objData As New DataObject
Dim strTemp As String
strTemp = ActiveCell.Value
objData.SetText (strTemp)
objData.PutInClipboard
End Sub
詳細:
上記のコードを実行し、Excelのセルにクリップボードを貼り付けると、次のように、疑問符が内側にある正方形で構成される2つのシンボルが表示されます。メモ帳に貼り付けても何も表示されません。
解決策:
しばらく検索したところ、Windows APIを使用するユーザー「Nepumuk」から別のVBAスクリプトが見つかりました。これが最終的に私のために働いた彼のコードです:
Option Explicit
Private Declare Function OpenClipboard Lib "user32.dll" ( _
ByVal hwnd As Long) As Long
Private Declare Function CloseClipboard Lib "user32.dll" () As Long
Private Declare Function EmptyClipboard Lib "user32.dll" () As Long
Private Declare Function SetClipboardData Lib "user32.dll" ( _
ByVal wFormat As Long, _
ByVal hMem As Long) As Long
Private Declare Function GlobalAlloc Lib "kernel32.dll" ( _
ByVal wFlags As Long, _
ByVal dwBytes As Long) As Long
Private Declare Function GlobalLock Lib "kernel32.dll" ( _
ByVal hMem As Long) As Long
Private Declare Function GlobalUnlock Lib "kernel32.dll" ( _
ByVal hMem As Long) As Long
Private Declare Function GlobalFree Lib "kernel32.dll" ( _
ByVal hMem As Long) As Long
Private Declare Function lstrcpy Lib "kernel32.dll" ( _
ByVal lpStr1 As Any, _
ByVal lpStr2 As Any) As Long
Private Const CF_TEXT As Long = 1&
Private Const GMEM_MOVEABLE As Long = 2
Public Sub Beispiel()
Call StringToClipboard("Hallo ...")
End Sub
Private Sub StringToClipboard(strText As String)
Dim lngIdentifier As Long, lngPointer As Long
lngIdentifier = GlobalAlloc(GMEM_MOVEABLE, Len(strText) + 1)
lngPointer = GlobalLock(lngIdentifier)
Call lstrcpy(ByVal lngPointer, strText)
Call GlobalUnlock(lngIdentifier)
Call OpenClipboard(0&)
Call EmptyClipboard
Call SetClipboardData(CF_TEXT, lngIdentifier)
Call CloseClipboard
Call GlobalFree(lngIdentifier)
End Sub
上記の最初のVBAコードと同じように使用するには、Sub "Beispiel()"を次のように変更します。
Public Sub Beispiel()
Call StringToClipboard("Hallo ...")
End Sub
に:
Sub CopyCellContents()
Call StringToClipboard(ActiveCell.Value)
End Sub
そして、受け入れられた答えから「user3616725」から提案されたようなExcelマクロメニューを介してそれを実行します:
Excelに戻り、[ツール]> [マクロ]> [マクロ]に移動し、「CopyCellContents」というマクロを選択して、ダイアログから[オプション]を選択します。ここで、マクロをショートカットキーに割り当てることができます(たとえば、通常のコピーの場合はCtrl + cのように)-Ctrl + qを使用しました。
次に、単一のセルをメモ帳/どこにでもコピーする場合は、Ctrl + q(または選択したもの)を実行し、Ctrl + vまたは編集>貼り付けを選択した宛先に実行します。
編集(2015年11月21日):
「dotctor」からの@コメント:
いいえ、これは真剣に新しい質問ではありません!私の意見では、受け入れられた回答のコードを使用するときに直面する可能性のある問題に対処するため、受け入れられた回答の良い追加です。もっと評判が良ければコメントを書いたでしょう。
「Teepeemm」からの@コメント:
はい、そうです。「問題:」というタイトルで始まる回答は誤解を招きます。変更:「 "user3616725"からの回答に関して考えられる問題:」。コメントとして、私は確かにはるかにコンパクトに書いたでしょう。