Excel VBA質問箱 IV

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

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


62310 / 76738 ←次へ | 前へ→

【19035】同じような
質問  ponpon  - 04/10/19(火) 23:25 -

引用なし
パスワード
   こんばんは。PONPONです。
 またまたお世話になります。明日が台風のため(今年4日目です。先のことを考えると不安ですが・・・)休みになったので(もちろん職員は年休ですよ)、今まで書いていたコードを見直しています。

以下質問です。
 職員用に年間時間割の自動作成を作っています。
 コードを見てみると、参照するセルが違うだけだったり、参照するシートが違うだけだったりするコードがたくさんあります。
 ひな形のコード(引数付き)を作り、引数にセルを入力することで、同じようなコードを少なくしたいと思い挑戦しています。
 XXXXX(i AS InTger,j AS InTeger)とし、コードの参照セルをCells(i,j)とすることで、何とかうまくできました。
   Call XXXXX(2,5)  とか  Call XXXXX(4,8)
(本当に正しいかどうかはわかりませんが、一応思った通りに動作しています。やったね!!)
 しかし、引数にWorksheetや文字をいれて同じようにしても、「型が一致しません」とエラーが発生してしまいます。

 以下コードの説明
 各種設定シートに、年月日入力欄とその横にあるチェックボックス6個(1校時から6校時まで)を設定しています。
 行事設定シートに、たとえば、年月日を入力し、1校時、2校時をチェックし、コマンドボタンをクリックすると、年度時数(全)シートにある同じ年月日の年間時間割の1校時時2校時にに「行」を入力するというものです。
 欠時設定シートでは同じように「欠」を、その他設定では、特定セル上の任意の一文字を というものです。 
 これを各種設定(ABC AS Worksheet, MOJI AS String)
というひな形を作り、シートと文字を指定することで、簡略化できないものかと考えています。
   Call 各種設定(行事設定,行) こんなふうに
こんな説明でわかりますか? うまく伝わるといいけど・・・
 よろしくお願いします。


Sub 行事設定()
  Dim TATE_G As Integer
  Dim YOKO_G As Integer
  Dim TATE_N As Integer
  Dim N As Integer
  Dim 色番号 As Variant
  Dim KYMD As Date
  Dim GYMD As Date


For TATE_G = 5 To 34
 For YOKO_G = 1 To 6
  If Worksheets("行事設定").Cells(TATE_G, 35).Value <> ""  Then
          ↑ここが違うだけ 
  GYMD = Worksheets("行事設定").Cells(TATE_G, 35).Value
             ↑  
   If Worksheets("行事設定").Cells(TATE_G, YOKO_G + 35).Value = True Then
             ↑
    For TATE_N = 4 To 85
    For N = 3 To 31 Step 7
     If Worksheets("年度時数(全)").Cells(TATE_N, N).Value <> "" Then
      KYMD = Worksheets("年度時数(全)").Cells(TATE_N, N).Value
      If Format(GYMD, "YYYY/MM/DD") = Format(KYMD, "YYYY/MM/DD") Then
       Sheets("年度時数(全)").Select
       Range(Cells(TATE_N, YOKO_G + N), Cells(TATE_N, _
                         YOKO_G + N)).Select
        色番号 = Selection.Interior.ColorIndex
        If 色番号 = 15 Or 色番号 = 38 Or 色番号 = 48 Then
        ElseIf Sheets("年度時数(全)").Cells(TATE_N, _   
        YOKO_G+ N).Interior.ColorIndex = 15 Then
        Else
        Sheets("年度時数(全)").Cells(TATE_N, _
                    YOKO_G + N).Value = "行"
                                 ↑ 
                              ここの文字が違うだけ
        Worksheets("年度時数(全)").Range(Cells(TATE_N, _
             YOKO_G + N), Cells(TATE_N, YOKO_G + N)).Select
        Selection.Font.ColorIndex = 3
        Selection.Font.Bold = True
        Selection.Interior.ColorIndex = 35
        End If
       End If
      End If
     Next
    Next
    End If
   End If
  Next
 Next
End sub 
 

0 hits

【19035】同じような ponpon 04/10/19(火) 23:25 質問
【19037】Re:同じような ichinose 04/10/19(火) 23:39 発言
【19038】Re:同じような 追伸 ichinose 04/10/19(火) 23:47 発言
【19040】Re:同じような 追伸 ponpon 04/10/20(水) 0:07 発言
【19041】Re:同じような 追伸 [名前なし] 04/10/20(水) 0:14 回答
【19045】Re:同じような 追伸 ponpon 04/10/20(水) 0:36 お礼
【19047】Re:同じような 追伸 [名前なし] 04/10/20(水) 1:08 回答
【19050】Re:同じような 追伸 ponpon 04/10/20(水) 7:55 お礼
【19042】Re:同じような 追伸 ichinose 04/10/20(水) 0:15 発言
【19043】Re:同じような 追伸 ponpon 04/10/20(水) 0:18 発言
【19044】Re:同じような 追伸 ichinose 04/10/20(水) 0:24 回答
【19046】Re:同じような 追伸 ponpon 04/10/20(水) 0:45 お礼
【19048】Re:同じような 追伸 ichinose 04/10/20(水) 1:10 発言
【19049】Re:同じような 追伸 ichinose 04/10/20(水) 1:22 発言
【19051】Re:同じような 追伸 ponpon 04/10/20(水) 8:09 お礼

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