<┌ ─ ┐│└ ┘を使って、文字列を囲ってみたい>
こんにちは、三流プログラマーKen3です。 今回は、 ┌──────────┐ │文字列を囲ってみたい│ └──────────┘ こんな感じの文字列を作ってみたいと思います。 よく、メルマガでもボタンの説明や、 タイトルの説明でも見るよね。 まぁまぁ。 気楽に読んでください。 /* * 1. やりたいこと */ VBAで楽しく と 文字列を受け取ったら、 ┌───────┐ │VBAで楽しく│ └───────┘ と、ワクで囲まれた文字列を作ってみたいです。 前回、フォームの作り方やったので、 ( Excelフォームの作成サンプルは http://www.ken3.org/vba/excel-form.html ) フォームを使用して作ってみます。 画面イメージは、 ^^^^^^^^^^^ 変換元文字列 _______________________ ┌──┐ │変換│ のボタンを設置、 └──┘ 変換結果 _______________________ _______________________ ←複数行入力表示可能なテキストボックスを作成 _______________________ 操作イメージは ^^^^^^^^^^^^^^ 変換元文字列に好きな文字を入力後、 変換のボタンを押す。 すると、変換結果が下のテキストボックスに表示される。 これを自分でコピーして使う(笑) /* * 2.フォームの作成 */ 部品を貼って、簡単に作成します。 *ここで美的センスが問われるんだけど、まぁいいや(おいおい) コントロールの名前を変えます。 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ オブジェクトおよびコントロールに名前を付ける http://www.microsoft.com/japan/developer/library/modcore/deconnamingobjectscontrols.htm を参考に頭3文字で規則的な名前を付けます。 txtMOTO 変換元の文字列を入力するテキストボックス btnCONV 変換実行ボタン txtSAKI 変換結果の表示エリア 頭をtxt,btnの3文字にします。 (名称の規則が載ってるページをあとで探そう) 変更方法は簡単で、 コントロールを選択後、オブジェクト名を変更します。 (TextBox1とか自動で付いてるので、変更します) 同様に、btnCONVとtxtSAKIも変更します。 /* * 3.MultLineのプロパティをTrueにする */ 結果の文字列は、下記のように複数行になるので、 ┌───────┐ │VBAで楽しく│ └───────┘ MultLineプロパティをTrueにします。 ^^^^^^^^ 方法は、簡単で、コントロールを指定(txtSAKI)、 プロパティの一覧から、 MultLineを探して、Trueにするだけです。 ワクを大きく取ってても、このプロパティがTrueじゃないと、 改行を判断してくれないので、注意が必要です。 /* * 4.ボタンにClickイベントを書く */ いよいよ、終盤戦、気合を入れなおして。 次は、ボタンにClickイベントを書きます。 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 方法は、簡単で、 ボタンのコントロールをダブルクリックすると、 いきなり Private Sub btnCONV_Click() End Sub となり、コードを書き込めます。 簡単にテストしてみたいですよね。 Private Sub btnCONV_Click() MsgBox "test" End Sub と中に打ちこみます。(芸が無いけどね) テスト方法は、F5を押すと、フォームが実行されます。 変換のボタンを押すと、画面にtestと表示されます。 /* * 5.テキストボックスの値の参照方法、と値の代入 */ ボタンが押されたら、変換処理を行います。 さてと、あれ?三流君、txtMOTOに入力された値って、どうやって取出すの? あと、結果をtxtSAKIにいれる時は? おっと、テキストボックスの値の表現方法ですよね、 これも簡単で、 txtMOTO.Value か 省略形でそのままtxtMOTOと変数みたいに使えます。 簡単なテストを書くと、 Private Sub btnCONV_Click() txtSAKI = txtMOTO & vbCrLf & "↑の文字数は" & Len(txtMOTO) & vbCrLf & "です" MsgBox txtMOTO & "が入力されました" End Sub なんか、思ったより簡単ですよね。 txtSAKI に txtMOTO & vbCrLf & "↑の文字数は" & Len(txtMOTO) & vbCrLf & "です" を代入してます。 そのまま、txtMOTO txtSAKI で使えるます。 見なれないvbCrLfは改行の定数です。 ~~~~~~~~~~~~~~~~~~ これで改行され、値を代入すると、txtSAKIに3行文字列が表示されてます。 /* * 6.ワクを作成するプログラムを書く */ ここまでで、必要な情報がそろったので、 ┌───────┐ │VBAで楽しく│ └───────┘ のワク作成をしてみたいと思います。 Private Sub btnCONV_Click() Dim i As Integer Dim strLINE1 As String '1行目 Dim strLINE2 As String '2行目 Dim strLINE3 As String '3行目 '1行目を作る strLINE1 = "┌" '初めに左上端を代入 For i = 1 To Len(txtMOTO) '文字数分─を追加 strLINE1 = strLINE1 & "─" Next i strLINE1 = strLINE1 & "┐" '右上端を付ける '2行目を作る strLINE2 = "│" & txtMOTO & "│" '両端に│を付ける '3行目を作る strLINE3 = "└" '初めに左下端を代入 For i = 1 To Len(txtMOTO) '文字数分─を追加 strLINE3 = strLINE3 & "─" Next i strLINE3 = strLINE3 & "┘" '右下端を付ける '結果の代入 各ラインをvbCrLFでつなげただけ txtSAKI = strLINE1 & vbCrLf & strLINE2 & vbCrLf & strLINE3 End Sub もう、ポイントも無いぐらい、 &で文字列をつなげる処理で書きました(笑) *長く書いて、次回以降のネタを残す姑息な目的もあったりして。 さて、テストしますか。 楽しくプログラム と 入れて、変換ボタンを押す。 あれ?なんか表示が変だ。 短いプログラムでもミスるとは、、、 良く見ろ三流プログラマー、フォントがプロポーショナルだからだよ、 テキストボックスのフォントを等倍に変えてみたら。 あっ、これかぁ。 テキストボックスのフォントプロパティを変えてと、 OKみたいですね。 そんなことであわてるから三流なんだよねキット。 /* * 7.終わりの挨拶 */ 今回は、 ・テキストボックス、ボタンの配置とテキストボックスマルチライン ・ボタンにイベントを書く ・テキストボックス値の参照、代入 でした。 サンプルファイルは、 http://www.ken3.org/vba/lzh/vba034.lzh に test034-book.xlsが保存されています。 遊んでくださいね。 次回は今回作ったフォームの問題点とかを少しやります。 ・半角文字ABCを入れると一発で問題点がわかったりしてね 拾い読みして、 1つでも何かの参考となれば幸いです。 Excel/Access大好き、三流プログラマーKen3でした。
ここまで、読んでいただきどうもです。ここから下は、三流君のホームページの紹介・案内です
目的の情報が見つかったか?少々心配しつつ、、、
気になったジャンル↓を選択してください。 人気記事(来場者が多いTOP3): Excel関係: Access関係: その他:VBAの共通関数やテキストファイルの操作など 開発時の操作: [F1を押してHELPを見る]/ [Debug.Print と イミディエイトウインドウ]/ [実行時エラーでデバッグ]/ [ウォッチ式とSTOP]/ [参照設定を行う] 仕様書(設計書?) XXXX書類: [基本設計書や要求仕様書]/ [テスト仕様書 テストデータ]/ [バグ票]/ [関数仕様書]/ [流れは 入力・処理・出力] ※↑文章の味付けが変わっていて、お口に合うかわかりませんが。。。 |
Blogとリンク:[三流君の作業日記]/
[VBAやASPのサンプルコード]/
広告-[通販人気商品の足跡]