[三流君] −−> [VBAで楽しく] −−> [バックナンバー一覧]
−−> No.034 ┌ ─ ┐│└ ┘を使って、文字列を囲ってみたい

┌ ─ ┐│└ ┘を使って、文字列を囲ってみたい

メルマガ発行内容

<┌ ─ ┐│└ ┘を使って、文字列を囲ってみたい>

こんにちは、三流プログラマー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でした。

フィードバック

VBA系の→[掲示板]←を覗く、質問を書き込む

評価・感想

No.034を読んだ満足度(評価)は?
5満足(参考になった)
4まぁまぁ(一部参考になった)
3普通(どちらとも言えない)
2なんかなぁ(期待と違った)
1不満(読んで損した気分)
作者に感想・質問を送る場合は下記に気軽に書いてください
あなたのお名前(ニックネーム) さん

作者からの返信は、 不用 E-mail で受信したい
*質問・感想はメルマガで紹介する場合があります

ページフッター(リンクや広告など)


[三流君(TOP ken3.org へ戻る)]
-- [VBA系TOPへ]
---- [VBA系バックナンバー目次へ移動]
------ [VBAでIEを操作 CreateObject("InternetExplorer.application")]・・・実は当店一番人気、VBAでIEを操作するサンプルです
------ [VBAでOutlookの操作 CreateObject("Outlook.Application")]・・・Outlookを使い、メール関係の処理です
------ [Access から Excel 連携 CreateObject("Excel.Application")]・・・人気のAccessからExcelへデータ書き出しなどです
------ [AccessのUserForm/サブフォームを操作]・・・アクセスでフォームを使ったサンプルです
------ [Accessのレポートを操作]・・・レポートを操作してみました
------ [Access クエリー関係やその他関数]・・・あまりまとまってませんが、スポット的な単体関数の解説です
------ [Excel UserForm(ユーザーフォーム)を操作する]・・・エクセルでユーザーフォームを作成して入力などを行ってます
------ [ExcelからAccessを操作する]・・・ExcelからAccessのマクロを起動してみました、
------ [Excel関係 関数、その他]・・・その他Excel関係です
------ [VBAでテキストファイル(*.txt,*.html,*.csv)の操作]・・・テキストファイルを使ったサンプルです
------ [VBA 標準関数関係とその他解説]・・・その他、グダグタ解説してます


広告
-- [通販系の売れ筋広告へ] ←主に楽天やAmazonのランキングです
blog
-- [三流君の作業日記] ← 日々の作業を少々
-- [通販あしあと] ← 通販ページの足跡を一覧で羅列

情報を探す

情報を探すならGoogleかな?

↓Web全体、サポート情報(support.microsoft.com)や三流君VBA(ken3.org)から検索する
Google
Web www.ken3.org
www.microsoft.com support.microsoft.com

あとは、項目別にMSでお勉強かな?
◆ マイクロソフト サイトの歩き方
◇ How-To インデックス
◇ FAQ インデックス
◇ スキルレベル別おすすめコンテンツ
◇ テクノロジ マップ
◇ テーマ別技術資料一覧

書籍の購入

Webだけじゃさすがに勉強しきれないので、プログラミング関係の書籍も読んでみては??

コンピュータ書籍の発送がハヤイ専門店

コンピュータの本・専門店
種類が豊富で探し易いです。※在庫ありが48時間以内発送が急ぎで資料や書籍がほしい時、とても助かります。
お奨め本の目次を見るだけでも勉強になったり

amazon.co.jpでキーワード別チェック

下記、私が設定したキーワードですが、こんな感じで資料や書籍を探ってみては?
[VBA全体を把握する] -- やはり全体をさらっと見たいですよね。
[SQL関連でDB力UP] -- システムはデータベース設計が重要
[ADO接続を探る] -- VBAなのでADO接続を押さえておく
[Windows APIを探る] -- さらにAPIになて知ってれば強力だ!
[.NETを探る] -- と言っても時代は.NETに流れてるし
プログラミング以外でも知りたいことは多くって、
[人間関係] -- で、客先・上司、まわりに気を使い。
[プログラマーの自己啓発] -- プログラムだけじゃなくいろいろと向上したいよ
[コーチング・育成] -- 先輩になったら後輩(部下)の面倒をみてね。
そんなこんなでプログラマーっていろいろと大変なんだってば・・・