Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


12135 / 76734 ←次へ | 前へ→

【70125】Re:最大文字数をselect
お礼  free  - 11/10/16(日) 22:50 -

引用なし
パスワード
   返信遅くなって申し訳ありません。

かなり勉強になりました。
ありがとうございます。
もっと早く返信できるよう注意します。
▼kanabun さん:
>▼free さん:
>>このコードの場合、最初にIf L > myStLen Thenを通過する時に最大文字数mystlenが無いと思うのでですがエラーになりません。
>>最初の比較はどうなるのか概念がわかりません。
>>比較対照がないのになぜ?
>
>変数myStLen はLong型(数値型)の変数として宣言しています。
>よって、宣言した時点で 数値0 に「初期化」されています。
>最初の比較は
>  If L > 0 Then
>となって、ただしく比較されています。
>
>
>>もうひとつ L = Len(.Cells(i, 1).Value)だったら.valueいらないのでは?
>>.textにするならわかるけど。
>>基本的には.textの方がいいのかな?
>
>Cells(i,1) ではセル自身(Rangeオブジェクト)です。比較したいのは
>セルの値ですから .Value プロパティを省略しないのが原則です。
>また(おっしゃるように)せっかくプロパティを使うんなら(文字列の
>比較だから) .Textプロパティを使ったほうがいい、ということはいえる
>でしょうね。
>(とくに調べる範囲の中に、数値や空白セルが存在するとき)
>
>あと、実際にどのくらいの行数があるのか分かりませんが、
>調べたいA列のデータを以下のように配列に入れておいて、
>Loopの中で最大文字数の行を調べてから、そのセルに移動する
>というより効率的な(画面がチカチカしない)方法もあることを
>覚えておくのも無駄ではないと思います。
>
>Sub Try1()
> Dim v, i As Long
> Dim MaxLen As Long '最大文字数
> Dim MaxPos As Long '最大文字数のある行
> 
> v = Application.Text(ActiveSheet.UsedRange.Columns(1), "@")
> For i = 1 To UBound(v)
>   If Len(v(i, 1)) > MaxLen Then
>     MaxLen = Len(v(i, 1))
>     MaxPos = i
>   End If
> Next
> 'Application.Goto Cells(MaxPos, 1), True
> 'または
> Cells Cells(MaxPos, 1).Select
>End Sub
7 hits

【70054】最大文字数をselect free 11/10/12(水) 18:55 質問
【70055】Re:最大文字数をselect kanabun 11/10/12(水) 19:26 発言
【70056】Re:最大文字数をselect Hirofumi 11/10/12(水) 19:27 回答
【70058】Re:最大文字数をselect free 11/10/12(水) 19:55 お礼
【70057】Re:最大文字数をselect kanabun 11/10/12(水) 19:36 発言
【70059】Re:最大文字数をselect free 11/10/12(水) 21:00 発言
【70060】Re:最大文字数をselect kanabun 11/10/12(水) 21:15 発言
【70125】Re:最大文字数をselect free 11/10/16(日) 22:50 お礼

12135 / 76734 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free