Excel VBA質問箱 IV

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

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


6446 / 13644 ツリー ←次へ | 前へ→

【45190】サブルーチンについて ToShiYo 06/12/14(木) 21:58 質問[未読]
【45191】Re:サブルーチンについて Kein 06/12/14(木) 22:14 回答[未読]
【45193】Re:サブルーチンについて ToShiYo 06/12/14(木) 22:47 発言[未読]
【45192】Re:サブルーチンについて awu 06/12/14(木) 22:35 回答[未読]
【45194】Re:サブルーチンについて ToShiYo 06/12/14(木) 22:55 お礼[未読]

【45190】サブルーチンについて
質問  ToShiYo  - 06/12/14(木) 21:58 -

引用なし
パスワード
      A     B
5  月日   曜日
6 12月1日   金 ←…「=A6」
7 12月2日   土
8 12月3日   日
9 12月4日   月
10   :
    :
    :
  12月31日

B列の曜日の表示をB列 = A列とし
書式の設定で"aaa"で表示しています。

サブルーチンを使い「土」と「日」の
Interior.ColorIndexで色を変更したく
コードを書きました。
B列に関数が入っているため、正しく
動作をしません…関数を外した場合(単に月・火・水・・・日と書いた)は
正しく動作するのですが・・・、
関数を生かしたままの
状態で動作させるには下のコードの訂正部分を
指摘・アドバイスお願いします。

Sub WeekDay_Color()
 Range("B6").Select
 Do While ActiveCell.Value <> ""
   色変換 ActiveCell.Value
 ActiveCell.Offset(1).Select
 Loop
 Range("A1").Select
End Sub

Sub 色変換(Youbi As String)
 Select Case Youbi
 Case "日"
  ActiveCell.Interior.ColorIndex = 38
  ActiveCell.Font.ColorIndex = 3
 Case "土"
  ActiveCell.Interior.ColorIndex = 34
 Case Else
  ActiveCell.Interior.ColorIndex = xlNone
 End Select
End Sub

【45191】Re:サブルーチンについて
回答  Kein  - 06/12/14(木) 22:14 -

引用なし
パスワード
   いつものように作業列(IV列)に数式を埋め込んで判定し、処理するコードです。

Sub MyWeekDay_Color()
  On Error GoTo ELine
  With Range("A6", Range("A65536").End(xlUp)).Offset(, 255)
   .Formula = "=IF(WEEKDAY($A6)=1,1,IF(WEEKDAY($A6)=7,""A""))"
   With .SpecialCells(3, 1).Offset(, -254)
     .Interior.ColorIndex = 38
     .Font.ColorIndex = 3
   End With
   .SpecialCells(3, 2).Offset(, -254).Interior.ColorIndex = 34
ELine:
   .ClearContents
  End With
End Sub

【45192】Re:サブルーチンについて
回答  awu  - 06/12/14(木) 22:35 -

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

>関数を生かしたままの
>状態で動作させるには下のコードの訂正部分を
>指摘・アドバイスお願いします。

それなら、コードの4行目を

色変換 ActiveCell.Value
          ↓
色変換 ActiveCell.Text

にするだけでいいと思いますよ。

【45193】Re:サブルーチンについて
発言  ToShiYo  - 06/12/14(木) 22:47 -

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

今晩は
ありがとうございました。
作業列に数式を埋め込んで判定される素晴らしいコードにびっくりしました。
今回で2回目のご解答を頂き思い出しています。
SpecialCells(3, 1)は数式の数値でしたね
SpecialCells(3, 2)は数式の文字でしたね
こんなに早くご返事頂き、唸ります・・・
65の頭では、なかなか発想が出来ません。
これからもご指導よろしくお願いします。

サブルーチンでシート関数を無視して動かすようには
出来ないのでしょうか、私なりにコードを作ったのですが
・・・・・

でも、非常に勉強になりました。
ビスタが出てくると作業列はどのような使い方になるのかな・・・
なんて独り言を言っています。

ありがとうございました。では、失礼します。

【45194】Re:サブルーチンについて
お礼  ToShiYo  - 06/12/14(木) 22:55 -

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

今晩は。
アドバイスありがとうございました。
早速試しました。上手く動きました。
ValueをTextに変更することに気がつきませんでした、
というのか、知識不足でした。
頭が固くなっている証拠かも知れません。
でも、「なるほど」っと・・・と言いたいのですが
教えていただき初めて理解しているレベルです。
勉強になりました。
これからもご指導よろしくお願いします。

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