1. ホーム
  2. excel

[解決済み] セルからコピーする際に引用符を省く

2022-11-20 11:33:48

質問

問題点 :

プログラム外の Excel からセルをコピーすると、ダブルクォートが自動的に追加されます。

詳細 :

Windows7マシンでExcel2007を使用しています。以下のような計算式のセルがあった場合。

="1"&CHAR(9)&"SOME NOTES FOR LINE 1."&CHAR(9)&"2"&CHAR(9)&"SOME NOTES FOR LINE 2."

セル内の出力(数値としてフォーマットされたもの)は、Excelではこのように表示されます。

1SOME NOTES FOR LINE 1.2SOME NOTES FOR LINE 2.

まあ、いい感じです。しかし、メモ帳などの別のプログラムにセルをコピーすると、最初と最後に迷惑な二重引用符が表示されます。CHAR(9)" によって作成されたタブは維持されることに注意してください。

"1  SOME NOTES FOR LINE 1.  2     SOME NOTES FOR LINE 2."

このダブルクオートを表示させないようにするにはどうしたらよいですか。 を表示させないようにするにはどうしたらよいでしょうか。言い換えれば、セルがクリップボードにコピーされたときに、これらが自動的に追加されるのを防ぐことができますか?

どのように解決するのですか?

Word-Pad、Notepad++、または Word に貼り付けてみると、この問題は発生しません。 セルの値を純粋なテキストとしてコピーするには、マクロを使用する必要があります。

これを適用したいワークブック (または、複数のワークブックで使用したい場合は Personal.xls) で、標準モジュールに次のコードを配置します。

コードを

Sub CopyCellContents()
'create a reference in the VBE to Microsft Forms 2.0 Lib
' do this by (in VBA editor) clicking tools - > references and then ticking "Microsoft Forms 2.0 Library"
Dim objData As New DataObject
Dim strTemp As String
strTemp = ActiveCell.Value
objData.SetText (strTemp)
objData.PutInClipboard
End Sub

プロジェクト(ワークブック)に標準モジュールを追加するには、VBEを開いて Alt + F11 と入力し、左上のプロジェクトウィンドウでワークブックを右クリックし、「挿入>モジュール」を選択します。右側に開かれるコードモジュールウィンドウに、コードを貼り付けます。

Excel に戻り、ツール>マクロ>マクロから、"CopyCellContents" というマクロを選択し、ダイアログからオプションを選択します。ここで、マクロをショートカットキーに割り当てることができます(たとえば CTRL + C は通常のコピー用) - 私は CTRL + Q .

そして、1つのセルをメモ帳やどこかにコピーしたいときは、Ctrl+q(または選択したもの)を実行し CTRL + V またはEdit>選択した保存先を貼り付けます。

私の回答は、(少し加筆して)コピーしたものです。 ここで

EDIT : (コメントより)

Microsoft Forms 2.0 Library が参考文献のリストにない場合。 を試してみてください。

  • 代わりに FM20.DLL を探します (@Peter Smallwood に感謝します)。
  • 参照] をクリックし C:\Windows\System32\FM20.dll (32 ビット Windows) (@JWhy に感謝)
  • をクリックして、参照と C:\Windows\SysWOW64\FM20.dll を選択します (64ビットの場合)。