2022年9月1日木曜日

エクセルでブックは開きますが、セルを全く使わないで実用的な仕事をこなすというスグレモノアプリだ - テキストボックス(エクセルVBA)

         
現在、タックシールをエクセルで印刷するアプルをVBAで組んでいる最中です。
業務用のタックシールは、A4用紙に切れ目が付いているので簡単にはがせます。

シールもサイズに応じて枚数も異なりますが、その位置は印刷の際に重要だな。
まあ、プリンターで印字位置をシールに納まるようにしなければならないから。

この点では、メーカー側が公表しているマージンの情報を頼りにプログラムだ。
今回のプログラムは、ワークシート上にテキストボックスを設けて印刷します。

なので、タックシールの枚数だけテキストボックスを作りますが、問題は名称。
作れば、”TextBox 1”のように数字が増えていきますが、問題は削除した場合。

削除した後に追加していくと、この数字が飛んだり、バラついて管理しずらい。
それに、このテキストボックスの名称を失念したりするので、メモも必要かな。

と思っていましたが、このテキストボックスは名称を簡単に変えられるのです。
しかも、現状の名称を確認したいのなら、VBエディターで操作すれば速攻です。

先ず、エディターの画面上にイミディエイトウインドウを立ち上げておきます。
次に、シート上のテキストボックスをクリックで選択してターゲットにします。

後はこのウインドウに"? Selection.Name"とタイプして、リターンを押すだけ。
するとその下の行に、名称を打ち出してくれるて簡単に確認できるので便利だ。

それで、テキストボックスはシェイプで、Shapes("TextBox 1")と表現される。
次に、名前を変更したいのなら、モジュールに次の通り書いて実行させてみる。

Sub NmeChnge() '選択したシェイプ名称変更
Selection.Name = "TextBoxHogeHoge"
End Sub

当然、シェイプを選択して実行させますが、次はシェイプ位置が分からない時。
この場合は、下記の簡単な三行プログラムを書いて実行させると選択しますな。

Sub ShpSelect()
ActiveSheet.Shapes("TextBox01").Select
End Sub

これらのシェイプは、ワークシート内で座標位置が特定できて、これも便利だ。
セルや行の上端や左端などから起点にして、ポイント単位で、位置を示します。

1ポイント当たり約0.35ミリになり、これでタックシールの印字位置へ調整だ。
これもイミディエイトウインドウを使って、簡単に調べることができたりする。

        
というわけで、シェイプをコントロールするコマンドは、奥が深いと感じます。
ネットでVBAを見ていますと、シェイプの説明では、△〇□のような部品をシート上で成業するような説明が多いのですが、タックシールをテキストボックスで作っていると、シェイプのコマンド群の本命は、このテキストボックスを成業することにあったのではないかと思うようになったのでした。



いいねと思ったら、三つポチっとね!
にほんブログ村 スキースノボーブログへにほんブログ村 スキースノボーブログ スキーへにほんブログ村 旅行ブログ 旅日記・旅の思い出へ
にほんブログ村    にほんブログ村      にほんブログ村 



0 件のコメント:

コメントを投稿