[[20180927084817]] 『VBAでの最大文字数の求め方』(しょうこ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『VBAでの最大文字数の求め方』(しょうこ)

いつもこちらのサイトを拝見しております。
初歩的は事かもしれませんが、教えていただけると助かります。

エクセル上に下記のとおり入力してあります。

A1セル:とうきょう
A2セル:かながわ
A3セル:ちば
A4セル:さいたま
A5セル:{=MAX(LEN(A1:A4))}

この様に入力した場合、A5セルでは最大文字数の5が求められています。

これと同じ事をVBAで求めようと、下記のようにしたのですが、エラーになってしまいます。

 Range("A5") = WorksheetFunction.Max(Len(Range("A1:A4").Value))

仕方がないので今現在はこの様にしました。

 Dim arr(1 To 4) As Variant, i As Long
 For i = 1 To 4
    arr(i) = Len(Cells(i, 1).Value)
 Next i
 Range("A5") = WorksheetFunction.Max(arr)

しかしながら、本当はもっと簡単に求める方法があるのではないかと思いまして、
いつもお世話になっているこちらに投稿させていただきました。

よろしくお願いいたします。

< 使用 Excel:Excel2016、使用 OS:Windows7 >


 数式をそのまま利用して

     MsgBox [max(len(a1:a4))]

 6が返りますが?
(seiya) 2018/09/27(木) 08:56

seiya様

素早い返信ありがとうございます、[]で囲む方法を知りませんでした
勉強になりました

ありがとうございました

(しょうこ) 2018/09/27(木) 09:02


 Evaluate method です。

 []は変数を使用できないので、その場合は

 Dim x As Long
 x=4
 msgbox Evaluate("max(len(a1:a" & x & "))")

 という具合になります。
(seiya) 2018/09/27(木) 09:08

seiya様

今まさに変数を使用する方法を調べていました!
実際は変動する最終行を調べてから使用するので、
まさに回答していただいた例で実装できます!

本当にありがとうございました!
(しょうこ) 2018/09/27(木) 09:14


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.