VBA知らずに落ちると抜け出せなくなるVBAの落とし穴です。Len関数がなぜか4を返す文字列の切り取り・切り抜きなどの処理がうまくいかない数字の桁数を調べるのがうまくいかないあたりにお悩みの方は、この落とし穴に落ちていないかご確認ください。変数の型ごとの細かい仕様おまけ:謎のエラーメッセージLen関数の仕様Len関数には、「String以外の変数を渡すと、変数のメモリ上の大きさを返す」というクソの役にも立たない仕様があります。Stringに入っていれば数値でもOKということで、Len関数を「変数に対して使用」する場合は、かならずStringの変数を使ってください。数値だからとLongを使うと、絶対に4を返すクソ関数化します。数値が何桁か調べるときに発生することが多そうですのでお気を付けを。7このように「""を結合する」「Cstr関数で文字列にする」のいずれかで対応します。あとは頻度はあまり高くありませんが、文字列の操作中に発生すると面倒ですね。発見時に言いようのない疲労に襲われる可能性があります。場面くらいしか発生パターンはないかもしれませんが、一応気を付けておきましょう。各変数の型に対する、細かい仕様については以下の通りです。「2020/04/01」の10。文字っぽいけどCharacterはオブジェクトとりあえず一番大事なのは、Variant型は大丈夫という点です。数字が入っていようと、文字数をカウントしてくれます。他には、セル値の文字数をLenでカウントするのはたまにやりますので、こちらも気に留めておいてください。気に留めておかなくても、普通に使って困ることはないかもしれません。いうことで、結論としては「数値だけ気を付けておけばOK」と言ってもいいですね。罠にかかることはまずないということです。常に「オブジェクトの既定のプロパティの文字数を数える」ようです。「オブジェクトはこのプロパティまたはメソッドをサポートしていません」を出します。他にどうでもいい仕様として、Double型が8を返すとかありますが、その辺は割愛します。知りたくなった方は、適当に調べてください。おまけ:謎のエラーメッセージベタ打ちの値にLen関数を使った際、Len("1234567")と、わざわざ文字列であると明記していました。変数が必要ですと言われます。ことは変数?でもそんな変数ないよ?」という意味のメッセージですね。変数が必要と言われたら作りますか。「1234567は文字列じゃない。7と、前述の通りVariantは、Stringと思って気を利かせてくれます。それならまあ、許してあげましょう。19:26Tweet関連記事2023-01-17Instr関数とLike演算子の速度比較(文字列を含むか判定)文字列が文字列を含んでいるかどうかを判定する2つの方法「Inst...2023-01-16マクロの処理時間を計測する-Timer関数の使い方マクロの処理時間を計測する方法を解説します。現在時刻を約ミ...2021-09-08ある文字列からある文字列までを取り出すテキストから2つの文字列を検索し、その間にある文字列を取って...2021-09-03文字列の右側(末尾)をn文字削除する文字列の右側をn文字削除するコードを解説します。出てくる処理の汎用関数集を紹介します。「日本語の変数でプログラミングすれば、みんなが幸せになれる」という思想の元、主にExcelVBAのマクロやコードを解説しているブログです。この思想については↓の記事をご覧ください。変数を日本語にすればプログラミングが上達する記事の更新通知や質問の回答はTwitterでも行っております。お気軽にフォローください。12はてなブログをはじめよう!LimeCodeさんは、はてなブログを使っています。ブログを報告する引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。