一昨日と昨日の続き
エクセルの右クリックメーニューにマクロを登録してみた - 午後わてんのブログ - Yahoo!ブログ
エクセル2007で値貼り付けのマクロで:1のウィンドウのシートが勝手に切り替わる - 午後わてんのブログ - Yahoo!ブログ
値貼り付けのマクロには不具合があったのを直した
セル以外をコピーした状態で値貼り付けを実行するとエラーになるのは
値貼り付けをするxlPasteValuesがセル以外には対応していないから?
書き直してウェブブラウザからのコピーでHTML形式もテキスト形式で
貼り付けるようにしたのが↓
-----------------------------------------------------------
今回はクリップボードの中にあるデータの形式を判定してみた(つもり)
セルかどうかの判定はエクセルかどうかの判定でもいいんじゃないかと
xlClipboardFormatBIFF12で検索して
ここを見たらBIFFがエクセルっぽい
実際にセルをコピーした状態でClipboardFormatを見てみると
エクセル2007のBIFF12の値63が含まれている
さっきのセルより1個多くて24形式入っているのはなんでだろう
2の画像と9のビットマップ形式入っているけど63は無い
メモ帳とかからテキストをコピーした時の状態
テキストを表す0が入っている
これはウェブブラウザの文字をコピーした状態
これも0のテキストがある
テキストも貼り付けたいのでクリップボードのデータが
テキスト形式があるものとエクセルのセルっぽいものを判定するようにした
For Each c In fmt 'クリップボードにテキスト形式かセル判定
If c = 0 Then
textF = True
ElseIf c = 63 Or c = 8 Or c = 18 Or c = 20 Or c = 30 Then
cellF = True
End If
Next
セルに対しての値貼り付けは
Selection.PasteSpecial Paste:=xlPasteValues
なんだけどテキストだとエラーになるので
ActiveSheet.PasteSpecial Format:="テキスト"
に分けるようにした、このへんもよくわからないなあ
Selection.PasteSpecial Format:="テキスト"でもいいような感じするけどなあ
結果として昨日よりは良くなった
関連記事2017年1月29日は2年10ヶ月後
ボタンの名前からコントロールIDを探すマクロ、IDを使ってセルの右クリックメニューに既存のボタン追加 ( ソフトウェア ) - 午後わてんのブログ - Yahoo!ブログ
http://blogs.yahoo.co.jp/gogowaten/14711160.html