アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセルで当番表を作ろうと、探していると、http://www.matsubarase.com/misc_program/Pipet-HT …と言うサイトを見つけました。自動作成マクロですごく便利なのですが、マクロのpassがある為に、アレンジできません。又、勉強にもなりません。こんなの簡単だと思われる方はたくさんおられると思いますが、どなたか教えて頂けませんか?宜しくお願いします。

A 回答 (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
    • good
    • 0

掲載されたサイトの一番下に


ソースが欲しい方はメールでお知らせください。
連絡先はこちらです。

と表示されているので連絡してみてはいかが?

あと、老婆心ながら
他の人が作成したマクロをアレンジ出来る位VBAに精通しているのであればご自分で作った方が早いと思いますよ

サイトにある表は通常のカレンダー作成と同じ要領で可能、日にち欄に曜日や六曜表示を行う手法を担当者名を置き換えるだけで済みそうです。
    • good
    • 0

こんばんは^^



>マクロのpassがある為に、アレンジできません。

そのサイトに行ってみましたが、
「Excelのアドイン指定のpassが違っている為に、マクロが実行されません」
ということでしたら、
アドインフォルダは、WindowsXPの場合は、
C:\Documents and Settings\ユーザ名\Application Data\Microsoft\AddIns
になると思います。

この回答への補足

有難う御座います。マクロ自体は起動しますしいいのですが、自分でマクロをマイナーチェンジして使いたいのです。題名を変えたり、土曜日を空白にしたりと・・・因みにOSはvista ultimateです。宜しくお願いします。

補足日時:2010/04/21 23:44
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!