Excel を自動化するときに、特定の Cell 上にテキストボックス オブジェクトを配置するにはどうすればよいですか?
-
09-06-2019 - |
質問
VB.Net を使用して Excel を自動化しており、印刷されないように設定できる Excel ワークシートに複数行のテキストを配置しようとしています。これらの間には、印刷可能なレポートが含まれます。テキストボックス オブジェクトを追加し、印刷オブジェクトの設定を false に設定すると、これを行うことができます。(別の方法がある場合は、指示してください)
テキストボックスを追加するコードは次のとおりです。
ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 145.5, 227.25, 304.5, 21#)
しかし、ポジショニングはポイント単位です。特定のセル上に配置し、セルに合わせてサイズを調整する方法が必要です。どのセルに配置するかだけがわかっているのに、それを配置する場所をどうやって見つけることができるでしょうか?
解決
セルの名前または位置がわかっている場合は、次のことができます。
With ActiveSheet
.Shapes.AddTextbox msoTextOrientationHorizontal, .Cells(3,2).Left, .Cells(3,2).Top, .Cells(3,2).Width, .Cells(3,2).Height
End With
これにより、セル B3 上にテキストボックスが追加されます。B3 のサイズを変更すると、テキストボックスもサイズ変更されます。
他のヒント
テキストボックスをコピーして貼り付けると、Excel は現在選択されているセルの上に新しいテキストボックスを配置します。したがって、VBA のコピー アンド ペースト コマンドを使用するだけで、これを非常に簡単に実現できます。これは、テキストボックス テンプレートを効果的に作成するため、よく似たテキストボックスを多数使用する場合に特に便利です。
所属していません StackOverflow