ユーザーがコピーした選択範囲 (行進アリ、黒枠ではありません) をリンクとして貼り付けようとしていますが、値しか表示されません。私はこれをいくつかの方法で試しました。たとえば、次のとおりです。
this_ws.Activate
this_ws.Range("A1").Select
ActiveSheet.PasteSpecial Link:=True
エラーなしで貼り付けられますが、常にリンクの代わりに値が表示されます。
私の最終的な目標は、ユーザー提供の選択を通常の範囲に変換することです。これまでの私の研究と実験は、これを正気で行う唯一の方法 (「正気」の特定の値について) は、一時的なタブにリンクとして貼り付け、それらのリンクから同等の範囲を作成するために必要な情報を収集することであることを示唆しています。(その他の、より頭痛の種となる方法には、DataObject またはシートの選択変更の監視が含まれます。)
更新: Microsoft によると、「ソース データがリンクに適していない場合、またはソース アプリケーションがリンクをサポートしていない場合、このパラメーターは無視されます。」では、なぜソース データが「適切」ではないのでしょうか。これは、マクロが有効な別のワークブックであり、開いたままにして、コピーした選択範囲に文字列と int を含めます。
Update2: 明確にするために、手動でコピーして [形式を選択して貼り付け] ダイアログ ボックスの左下隅にある [リンクを貼り付け] ボタンをクリックすると、GUI から得られる機能を (VBA で) 複製しようとしています。 . VBA からユーザー提供のコピーにリンクを貼り付けることができれば、あとは自分でできることがわかります。しかし、クリップボードがこのプロセスに関与しているかどうかは特に気にしません。ユーザーが選択できるようにしたいだけで、ctrl-c、alt-tab をツール ワークブックに移動してから、指定した範囲でマクロを実行するボタンを押します。