新たに挿入したテキストボックスに変数化した文字列を表示し、さらに180度回転させるためのエクセルVBAのコードを紹介します。
振替用紙への印字のための必要テクニックです。
こんにちは、じゅんぱ店長(@junpa33)です。
今回も先回同様に、180度回転表示についてです。
「文字列(文章)」を表示して、180度回転させます。
今回の回転方法は、「数字」の時とは全く違った方法になります。
「文字列(文章)」を180度回転させる方法は、先回説明した数字の場合とは全く異なります。
結構、強引に回転させる的な方法になります。
テキストボックスを180度回転させるという方法です。
先に前回の記事の読み返しをするには、こちら↓になります。
コンテンツ
テキストボックスを180度回転させる方法の考え方
今回は、セルに入っている文字列(文章)を180度回転させるということですが、
先回の記事でも書きましたように、そのまま回転させようとすると90度回転が限界です。
先回の「数字」同じ方法で回転させると”横書きが縦書き”になってしまいます。
解決策として
今回は、テキストボックスを使って180度回転表示させることにします。
例えば手動で、
エクセルでテキストボックスを挿入するには、
「挿入」タブから「テキストボックス」で「横書きテキストボックス」を選択します。
「横書きテキストボックス」についているハンドルを掴んで180度回転させます。
これを、VBAコードを使って自動化していきます。
そのVBAを実行すると、表示が180度回転しているという訳です。
180度回転させるVBAコードの作成方法
それぞれ文字列になるデータの操作は、各項目セルごとに同じになります。
今回作業するシートのセル内容はこのようになっています。
今回の目標は別のシートに移してこのように180度回転表示します。
テキストボックスを挿入するエクセルVBA
「入力シート」のデータ入力欄、セルC5に入っている「加入者名」で説明をしていきます。
まず、ここのデータを新しく挿入したテキストボックスに移します。
プロシージャー名を「テキスト反転加工a」とします。
Sub テキスト反転加工a()
End Sub
「加入者名」の入力セルは、セルC5からP15までの連結セルになっています。
その中に入っているデータを指定するには、仕様上連結セルの左上のセルに入っていることになっています。
テキストボックスを追加(サイズを調整)し、Textを指定、外枠を非表示にします。
Worksheets(“入力シート”).Select
TVa = Range(“C5”).Value
ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 80.25, 568.5, 200 _
, 28).Select
With Selection.ShapeRange
.TextFrame2.TextRange.Characters.Text = TVa
.Line.Visible = msoFalse
End With
180度回転させるVBAコード
上のVBAコードで作成したテキストボックスを切り取って「印刷用テンプレート」シートに張り付けます。
張り付ける場所は2か所です。貼り付け後、180度反転をします。
また貼り付けスペースの大きさが違いますのでサイズ調整をします。
Selection.Cut
Worksheets(“印刷用テンプレート”).Select
Range(“W11”).Select
ActiveSheet.Paste
Selection.ShapeRange.IncrementRotation 180
Range(“C10”).Select
ActiveSheet.Paste
With Selection.ShapeRange
.TextFrame.AutoSize = True
End With
Selection.ShapeRange.IncrementRotation 180
Worksheets(“入力シート”).Select
Range(“A1”).Select
それぞれの項目に文字列を180度回転移動するVBA
それぞれの項目について、
「加入者名」のSubプロシージャー名は「テキスト反転加工a」
「通信欄」のSubプロシージャー名は「テキスト反転加工b」
「ご依頼人 おところ」のSubプロシージャー名は「テキスト反転加工c」
「ご依頼人 おなまえ」のSubプロシージャー名は「テキスト反転加工d」
とします。
「ご依頼人 お名前」の受領書側の貼り付けサイズは、貼り付け位置のセルの大きさを基にテキストボックスの大きさを指定しています。
「通信欄」については
Sub テキスト反転加工b()
Dim TVb As Variant
Worksheets(“入力シート”).Select
TVb = Range(“B8”).Value
ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 80.25, 568.5, 325 _
, 66.75).Select
With Selection.ShapeRange
.TextFrame2.TextRange.Characters.Text = TVb
.Line.Visible = msoFalse
End With
Selection.Cut
Worksheets(“印刷用テンプレート”).Select
Range(“O8”).Select
ActiveSheet.Paste
Selection.ShapeRange.IncrementRotation 180
Worksheets(“入力シート”).Select
Range(“A1”).Select
End Sub
「ご依頼人 おところ」については
Sub テキスト反転加工c()
Dim TVc As Variant
Worksheets(“入力シート”).Select
TVc = Range(“C14”).Value
ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 80.25, 568.5, 225 _
, 50).Select
With Selection.ShapeRange
.TextFrame2.TextRange.Characters.Text = TVc
.Line.Visible = msoFalse
End With
Selection.Cut
Worksheets(“印刷用テンプレート”).Select
Range(“U5”).Select
ActiveSheet.Paste
Selection.ShapeRange.IncrementRotation 180
Worksheets(“入力シート”).Select
Range(“A1”).Select
End Sub
「ご依頼人 おなまえ」については
Sub テキスト反転加工d()
Dim TVd As Variant
Worksheets(“入力シート”).Select
TVd = Range(“C16”).Value
ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, 80.25, 568.5, 225 _
, 50).Select
With Selection.ShapeRange
.TextFrame2.TextRange.Characters.Text = TVd
.Line.Visible = msoFalse
End With
Selection.Cut
Worksheets(“印刷用テンプレート”).Select
Range(“U3”).Select
ActiveSheet.Paste
Selection.ShapeRange.IncrementRotation 180
Range(“B6”).Select
ActiveSheet.Paste
With Selection.ShapeRange
.Height = Range(“B6”).Height * 4
.Width = Range(“B6”).Width * 8
.TextFrame2.WordWrap = msoTrue
End With
Selection.ShapeRange.IncrementRotation 180
Worksheets(“入力シート”).Select
Range(“A1”).Select
End Sub
180度回転したテキストボックスのVBAコードのまとめ
それぞれの項目についてのVBAコードを纏めて行うプロシージャーを作ります。
Subプロシージャー名は「テキスト反転加工」とします。
Sub テキスト反転加工()
テキスト反転加工a
テキスト反転加工b
テキスト反転加工c
テキスト反転加工d
End Sub
全体を通してこのようになります。
これで、「入力シート」でセットした、振替用紙(払込取扱票)へ印字したいデータを、
「印刷用テンプレート」に180度回転させて移動配置完了です。
作成されている「印刷用テンプレート」シートを確認チェックして下さい。
後は、印刷準備のセッティングを行います。
次回は、印字ボタンの設置やプリンターの用紙サイズの設定などについてです。
短期間でエクセルVBAの独学習得を目指したいなら
エクセルVBAを独学する独習方法は、学習者それぞれ十人十色、多種多様と思われます。
けれども、
出来るだけ効率よく学習するためには、いくつかの大切なポイントがあります。
独学でもVBA習得の中級クラスに達するのはそんなに難しいことではありません。
先人が行った勉強方法をあなたがそのまま利用すればよいということです。
独習のための大切な7つのポイントは、上記記事にて解説しています。
独習によるVBA習得のキーワードは、
出来るだけ多くの実例に触れること!
です。
正直、VBAの学習について自分の周りの仕事(業務)からだけ実例を得るのでは効率良い習熟は無理です。
ハッキリ言って、
本当に短い期間でVBA習得を成功させたいなら、今使っている参考書が良書かどうかを判断し、新ツールとしてオンライン学習も取り入れて行うことが、
手っ取り早く短期間習得できるというのは間違いないでしょう。
エクセルVBAを使って業務効率を上げて行くのに、始めのうちに知っておきたいテーマを纏めてみました。
ここまでお読みいただきありがとうございました。