文字列を操作しよう

 アクセス数: アクセス数
文字列を操作しよう


健康情報 ⇒ どこへ向かって・・・ ⇒ VBAトップ ⇒ 文字列を操作しよう


文字とは、文字コードでできています。

文字であっても、コンピュータの中では数値として捉えられています。

文字と数値の対応

Chr([文字コード(数値)])

例えば、

Chr(34) は「"(ダブルクォーテーション)」、

Chr(9) はタブ
Chr(10) はラインフィード文字
Chr(13) はキャリッジリターン

Chr(-32096) は「あ」


調べる方法は、

=Asc("あ")

とすれば、-32096が帰ってきますので分かります。


改行も文字の一種

改行は、上に出てきた「ラインフィード」と「キャリッジリターン」の組み合わせで実現します。

VBAでは、これらが分かりやすいように組み込み定数として定義されています。

vbCrLf  Chr(13) & Chr(10)

使い方例:strX = strA & vbcrlf & strB

⇒strAの内容

 strBの内容


※Microsoft Excelのセル内での改行(文字列の途中で改行[Alt]+[Enter])した場合には、ラインフィード(Chr(10))のみが埋め込まれます。vbCrLf (chr(13) & chr(10))を埋め込むと、Office2000では表示がおかしかったのですが、OfficeXp(Excel2002)では普通に表示されるようです。


どの改行文字が含まれているか実験

(ダブルクリック時に「A1」の内容 「aaa 改行 bbb」 の文字を検査)

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
MsgBox ("vbCr=" & InStr(1, Range("a1"), vbCr, vbBinaryCompare) & vbCrLf & "vbLf=" & InStr(1, Range("a1"), vbLf, vbBinaryCompare))
End Sub

結果⇒


Excel2000では

aaa・

bbb

 
   

このような感じに(@遥か昔)



他にも組み込み定数としていくつかあります。

vbBack  Chr(8)

vbCr  Chr(13)

vbLf  Chr(10)

vbCrLf  Chr(13) & Chr(10)

vbTab  Chr(9)

vbVerticalTab Chr(11)

vbFormFeed  Chr(12)

vbNewLine  Chr(13)

vbNullChar  nullキャラクター Chr(0)

vbNullString  null文字 文字列がnullポインタを指しているかどうか(初期化状態の判定)

vbObjectError  オブジェクトエラー


※Visual Basic Editor画面より、

⇒表示

⇒オブジェクトブラウザ

⇒ライブラリ=VBA、クラス=Constants で上のメンバが表示されます。



2つの文字列を結合するには

strResult = "文字列a" & "文字列b"


文字列は「"(ダブルクォーテーション)」で囲みます。


その文字列に「"(ダブルクォーテーション)」を含ませたい場合には「"""」と三つ並べます。

strResult = "ダブルクォーテーション表示⇒" & """

あるいは、「"」の文字コード(34)を使います。

strResult = "ダブルクォーテーション表示⇒" & Chr(34)



間に変数を入れることもできます。

strResult = "変数 i の値は「" & i & "」です。"

変数「i」が10の場合⇒"変数 i の値は「10」です。



計算結果も結合対照になります。

strResult = 1 + 1 & "個"

strResult ⇒ 2個


※逆に文字列としての数字「1(全角)」を「1(英数)」に変換する場合には、

Dim strX as String

Dim intResult as Integer

strX = "1"

intResult = CInt(strX) + 1


配列を結合して一つの文字にするには

Join()関数を使います

Range("a1") = Join(Array("a", "b", "c", "d"), ",")


このようにすれば、CSV形式の文字列が作成されます。(第二引数に「,」を指定しているため)

結果⇒a,b,c,d

※Array(・・・)⇒配列。普通に Dim ar(10) as Integer と定義したものでも同様に使えます。



文章の中から必要な文字を検索するには

InStr()関数



文字列の一部分を抜き出すには

Left()  LeftB()

Right() RightB()

Mid()  MidB()


InStr()関数などと組み合わせることにより、高度な抽出が可能となります。


「B」が付くものは、バイト(Byte)単位で抜き出します。



特定の文字を別の文字に置き換えるには

Replace()関数を使います。

Dim strX As String
strX = "今日は暖かい"
Range("a1") = Replace(strX, "暖か", "寒")

結果⇒今日は寒い


ホーム

 

ひとつ上のページへ はじめに マクロを使う プログラムを動かすために 変数について エラーの場合の処理 計算あれこれ 文字列を操作しよう 命令の種類 コントロール 型について レジストリ Optional 計算結果を返す カタカナ→ローマ字 Option Explicit Application.ScreenUpdating = False Nバック脳トレ


取扱商品一覧へ  ご注文画面へ

 

本物商品、健康情報の「ほんもの冒険スタジオ」
カリカパパイヤ発酵食品、ペット用品の「パパナピ!」
インフォメーション


営業日

月〜土曜日(10:00am〜5:00pm) 日祝定休日


ご注文・お問い合わせについて

・ 当サイトにて随時(24時間)受付しております。
・ お電話、ファックス、メールでのご注文も随時受付しております。
・ 午後3時までのご注文分につきましては即日発送いたします。

※日曜、祝日のご注文分につきましては翌営業日発送となります。
なお、在庫の状況によって発送が遅れる場合もございますのでご了承願います。


〜当サイトからのご注文〜

取り扱い商品一覧画面より >>

※ 取り扱い商品一覧画面の画像をクリックすることにより各商品の詳しい説明画面に移ります。


〜配達日及び配達時間帯のご指定〜

・お届けの日及びお届け時間帯につきましては、ご都合の良い日時をお選びいただけます。

[午前中] [14〜16時] [16〜18時] [18〜20時] [19〜21時]


「ほんもの冒険スタジオ」運営


配送料、代金引換手数料について

〜配送料〜

・1回のお買い上げ金額が5,000円(税込み)以上の場合には、配送料は日本全国無料とさせていただきます。

・1回のお買い上げ金額が5,000円(税込み)に満たない場合には、配送料650円(税込み)をご負担願います。(一部例外もございます。)


〜代金引換手数料〜

・代金引換手数料につきましては、全額当方で負担させていただきます。


お支払い方法

〜代金引換のお客様〜

・現金、クレジットカード、デビットカードのいずれかでのお支払いとなります。

カード一覧


〜クレジットカード決済サービス〜

<直接決済は終了しました>

 ペイメント

・お客様登録画面(ご希望商品選択後)にて簡単決済

 カード一覧


〜銀行振込のお客様〜

・お振込確認後直ちに発送いたします。(お振込手数料はご負担願います)

お振込先:PayPay銀行  (0033) ビジネス営業部 (005)

 (普通) 1 5 1 8 4 1 7  ヤマモトケンコウドウヤマモトマサハル


Copyright(C) 2005-2024 山本健康堂