Excel VBA質問箱 IV

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

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


54846 / 76732 ←次へ | 前へ→

【26670】変更内容を他のブックに反映させるには
質問  にしもり  - 05/7/13(水) 18:10 -

引用なし
パスワード
   こんにちは。

<仕様>
Excelファイルが2つあります。
一方は「勤務予定表」で、他方の内容に応じてかき換えたいファイルです。
A3に「社員コード」と入っています。
H3に「1」と入っています。右にむかって日が進み、長の月だとAL3列に「31」と入っています。
5行目以降にレコードが入っています。A列には社員コードがaa0001などと入っています。
レコード部分は出勤情報である「休み」「前休」「慶弔休」などと入っています。
他方は「変更内容」で、一方を書き換えたい社員のみの出勤情報が載っています。
B列に「社員コード」、D列に「日付 アンダースコア 出勤情報」が入っています。

<規則性>
たとえば
「変更内容」のB2にaa0001、D2に「1日_休み」とあったら
「勤務予定表」のaa0001の行のH列に「休み」と書き換えたいのです。
「変更内容」のB3にdd0001、D3に「10日_前休」とあったら
「勤務予定表」のdd0002の行のQ列に「前休」と書き換えたいのです。
「変更内容」のB4にee0001、D4に「10日_慶弔休」とあったら
「勤務予定表」のee0005の行のQ列に「慶弔休」と書き換えたいのです。

下記のような骨子をかんがえました。(まだプログラムになっていません。)

Sub Macro2()

Dim E As Long
Dim R As Variant
Dim V As Long
Dim W As Long
Dim S As Long
Dim T As Long

  Windows("変更内容.xls").Activate
  Range("B2").Select
  Range(Selection.Selection.End(xlDown)).Select
  
  R = Selection.End(xlDown)
  V = Selection.Value
  
  For E = 2 To R
    Windows("勤務予定表.xls").Activate
       
    For T = 1 To 31
  
      W = Selection.Value
      If V = W Then
      
  '    勤務予定表.xlsを変更内容.xls"でかきかえる。
       ActiveCell.Paste
       
      Else
        Windows("変更内容.xls").Activate
        
        Range(T & R).Select
        S = Range(T & R).Value
        Range(Selection.Selection.End(xlToRight)).Select
        
      End If
    
    Next
    T = T + 1

  Next
  E = E + 1

End Sub

このような場合Forでループさせるのがいいのか自信がありません。
もっとよいループのさせかたがあったらどうかご教示ください。

0 hits

【26670】変更内容を他のブックに反映させるには にしもり 05/7/13(水) 18:10 質問
【26680】Re:変更内容を他のブックに反映させるには ponpon 05/7/14(木) 0:40 発言
【26701】Re:変更内容を他のブックに反映させるには にしもり 05/7/14(木) 12:11 お礼

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