- ベストアンサー
エクセルで当番表を作ろうと、探していると、http://www.mat
エクセルで当番表を作ろうと、探していると、http://www.matsubarase.com/misc_program/Pipet-HTU.phpと言うサイトを見つけました。自動作成マクロですごく便利なのですが、マクロのpassがある為に、アレンジできません。又、勉強にもなりません。こんなの簡単だと思われる方はたくさんおられると思いますが、どなたか教えて頂けませんか?宜しくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
そのマクロは、マクロ学校1年生卒業で、難しいことは何もしていません。 ただ、リンク先のツールは、kt関数がないので私の環境では動きません。祝日自体は、政府の来年の発表があるまでは、祝日さえ決まらないのですから、年間のリストを作っておけば良いのです。だから、kt 関数は必要ありません。 >マクロのpassがある為に、アレンジできません。 そういう考え方は改めたほうがよいです。他人のものでも、自分のマクロでも半年経てば別人のマクロで、分かりません。ご自身で作ることをお薦めします。 表だけみてマクロも作ってみたのですが、今回のサイトの改編で私の作ったプロシージャ全部は入らないです。もう、ここのサイトで完全にはマクロの質問はダメかもしれません。 マクロは三つに分かれています。[カレンダーの枠組みのフォームを作る][日付を入れる][人名を入れる]その内の人名を入れるマクロだけ入れておきます。 '------------------------------------------- Sub PutInNames() Dim arNames As Variant Dim rng As Range Dim StartRng As Range Dim i As Long Dim j As Long Dim SetteiSh As Worksheet Dim n As Long, m As Long Dim Doyobiflg As Boolean '========================================= Set SetteiSh = Worksheets("設定") Set rng = SetteiSh.Range("D5:D12") '名前リスト Doyobiflg = False '日曜/祭日のみ True '========================================= With SetteiSh If Application.CountA(rng) < 2 Then MsgBox "名前リストがないかもしれません。", vbExclamation Exit Sub End If arNames = rng.Value '名前リスト arNames = Application.Transpose(arNames) m = UBound(arNames) For i = 1 To rng.Rows.Count If rng.Cells(i, 2).Value <> "" Then j = i '最初の人の順番 Exit For End If Next i If i > rng.Rows.Count Then MsgBox "最初の印がありません。", vbCritical Exit Sub End If End With '------------------------------------------- With ActiveSheet 'アクティブシート '書き込み Set StartRng = .Range("A6") n = j '最初の人の順番の移し替え With StartRng For i = 1 To 50 With .Cells(1 + Int((i - 1) / 7) * 3, ((i - 1) Mod 7) + 1) If Val(.Offset(-1).Value) > 0 Then '日曜日か土曜日含むかの判定 If .Offset(-1).Font.ColorIndex <= IIf(Doyobiflg, 3, 1) Then .Cells(1).Value = arNames(n) n = n Mod m + 1 Else .Cells(1).ClearContents End If End If End With Next End With End With End Sub
その他の回答 (2)
- web2525
- ベストアンサー率42% (1219/2850)
掲載されたサイトの一番下に ソースが欲しい方はメールでお知らせください。 連絡先はこちらです。 と表示されているので連絡してみてはいかが? あと、老婆心ながら 他の人が作成したマクロをアレンジ出来る位VBAに精通しているのであればご自分で作った方が早いと思いますよ サイトにある表は通常のカレンダー作成と同じ要領で可能、日にち欄に曜日や六曜表示を行う手法を担当者名を置き換えるだけで済みそうです。
- may0430
- ベストアンサー率54% (57/104)
こんばんは^^ >マクロのpassがある為に、アレンジできません。 そのサイトに行ってみましたが、 「Excelのアドイン指定のpassが違っている為に、マクロが実行されません」 ということでしたら、 アドインフォルダは、WindowsXPの場合は、 C:\Documents and Settings\ユーザ名\Application Data\Microsoft\AddIns になると思います。
補足
有難う御座います。マクロ自体は起動しますしいいのですが、自分でマクロをマイナーチェンジして使いたいのです。題名を変えたり、土曜日を空白にしたりと・・・因みにOSはvista ultimateです。宜しくお願いします。