Excel VBA質問箱 IV

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

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


16 / 13190 ツリー ←次へ | 前へ→

【80180】文字数が2以上のセルを左上揃え、2未満のセルを中央揃えにするマクロ 困り人 18/10/13(土) 13:40 質問[未読]

【80182】Re:文字数が2以上のセルを左上揃え、2未満... 困り人 18/10/13(土) 15:43 発言[未読]
【80183】Re:文字数が2以上のセルを左上揃え、2未満... γ 18/10/13(土) 17:08 発言[未読]
【80184】Re:文字数が2以上のセルを左上揃え、2未満... 困り人 18/10/13(土) 17:18 お礼[未読]

【80182】Re:文字数が2以上のセルを左上揃え、2未...
発言  困り人  - 18/10/13(土) 15:43 -

引用なし
パスワード
   ▼γ さん:
For Each ...Nextを使ったらできた気がします。
ありがとうございます。
結構時間がかかってしまうのは仕方がないですかね?

Sub Macro1()
Dim c As Range
  For Each c In Selection
    If Len(c) > 1 Then
      With c
        .HorizontalAlignment = xlLeft
        .VerticalAlignment = xlTop
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
      End With
    
     Else
      With c
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
      End With
     End If
  Next c
End Sub

>条件付き書式で対応可能ですが、
>あえてマクロなんですね?
>
>詰まっているのはどこですか?
>まず1セルではできますか?
>文字列の長さはLen関数です。
>書式変更はマクロ記録を活用してください。
>
>選択範囲のそれぞれに対して実行するには
>For Each ...Next を使います。

【80183】Re:文字数が2以上のセルを左上揃え、2未...
発言  γ  - 18/10/13(土) 17:08 -

引用なし
パスワード
   速度については、必要な属性だけに限定するとかでしょうか?

あと考えるべきは、実行のタイミングでしょう。
入力が終わったあとで一括して処理すればいいのか、
リアルタイムに変更させたいかですね。
後者なら、Excel付属の条件付き書式が本来的な対応ですね。

【80184】Re:文字数が2以上のセルを左上揃え、2未...
お礼  困り人  - 18/10/13(土) 17:18 -

引用なし
パスワード
   ▼γ さん:

わかりました。ありがとうございます!
>速度については、必要な属性だけに限定するとかでしょうか?
>
>あと考えるべきは、実行のタイミングでしょう。
>入力が終わったあとで一括して処理すればいいのか、
>リアルタイムに変更させたいかですね。
>後者なら、Excel付属の条件付き書式が本来的な対応ですね。

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