ダウンロード (マクロ使用分:スケジュール_ガントチャート_カレンダー.xlsm と 非使用分:スケジュール_ガントチャート.xlsx) WBSガントチャートをExcelで作ってみた というページからダウンロードできる Excel はとても使いやすく( 2か月の表示 )単純にできていました。( 2013年08月30日 で更新が止まっています ) さっそく使ってみましたが、少し問題点があったので『修正』と『追加仕様』を行いました。 1) Workday 関数の使い方が、金曜で日数が終わった場合に土日を含んだ完了日になっていたので修正 2) 日付の入力が、手入力なので VBA の Form + DTPicker でカレンダー入力を可能にした1) の修正は以下のページを参考にしました Excel2010:土日なら前の平日を返す(WORKDAY関数・WEEKDAY関数 ) 2) の追加仕様は、Form と DTPicker を使用しましたが、VBA におけるイベント処理を詳細にコントロールする術が無く、Form で何をしても選択されている日付をセルに転送するようになっています。 ただ、対象列以外でカレンダーボタンをクリックした場合はエラーにしています。 また、Formを開いた時に DTPicker を開かせる為に SendKeys を使用しているのですが、Numlock が OFF になるバグがあったので、以下のページのコードを利用して対処しました。 VBAの「Sendkeys」についての質問です。 UserForm1
Private Sub DTPicker1_CloseUp()
ActiveCell.Value = DTPicker1.Value
Unload UserForm1
End Sub
Private Sub UserForm_Initialize()
Call saveNumLock
SendKeys ("%{DOWN}")
Call numLockCheck
End Sub
Module1
Private Declare Sub keybd_event Lib "user32" _
(ByVal bVk As Byte, _
ByVal bScan As Byte, _
ByVal dwFlags As Long, _
ByVal dwExtraInfo As Long)
Private Declare Function GetKeyboardState Lib "user32" _
(pbKeyState As Byte) As Long
Const VK_NUMLOCK = &H90 '「NumLock」キー
Const KEYEVENTF_EXTENDEDKEY = &H1 'キーを押す
Const KEYEVENTF_KEYUP = &H2 'キーを放す
Dim NumLockState As Boolean
Dim keys(0 To 255) As Byte
Sub カレンダー参照_Click()
Dim no
no = ActiveCell.Column
If no <> 5 Then
MsgBox ("開始日のセルを選択してください")
Exit Sub
End If
UserForm1.Show
End Sub
Sub saveNumLock()
GetKeyboardState keys(0)
NumLockState = keys(VK_NUMLOCK)
End Sub
Sub numLockCheck()
'「NumLock」キーがオンだった場合はオンにする。
If NumLockState Then
'キーを押す
keybd_event VK_NUMLOCK, &H45, KEYEVENTF_EXTENDEDKEY Or 0, 0
'キーを放す
keybd_event VK_NUMLOCK, &H45, KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0
End If
End Sub
使用方法開始と休日設定に、開始日と休日を設定します(土曜と日曜は休日なのでそれ以外の非稼働日です) ガントチャートの開始日に日付を入力して、工数に日数を入力します 日付は、月から入力すると現在の年になります 現在以外の年を使用する場合は、18/12/1 のように年の下2桁を最初に入力します カレンダーボタンで日付を参照できます カレンダーはただ閉じても日付は選択されます![]()
|
|
【Microsoft Officeの最新記事】
- Access から SQLServer 認証の ODBC DSN で接続しているのに、Windows 認証で勝手に接続しようとして失敗するトラブルの解決方法
- Excel が最大化時に、タスクバーの後ろに隠れてしまう現象の対処法 / Google Chrome だと、タスクバーが全て隠れてしまいます
- Excel 2010 : 上付き文字・下付き文字
- Excel の VLOOKUP 関数がエラーになる場合に後から iferror関数を追加する手順
- 関数の挿入ダイアログに出てこない DATEDIF 関数を引数入力ダイアログで処理する
- Excel : 大量行、正確範囲指定後のオートフィル( 数式のコピー等 )
- Excel : 特殊操作ドキュメント
- Office Word で、セル一個のテーブルで強調表示する
- Word 2010 で『中抜き』の代替え
- Excel 2010 で文字を画像化する場合、図形内で24ポイント以上にします。
- Excel の枠線を非表示にする( 操作手順書用の画像キャプチャ )
- Excel の起動スイッチ ( Microsoft 正式文書 )
- Excel の関数 : 年のみ和暦変換 : 2014年 => 右隣のセルに平成26年 / ROW、COLUMN、ADRESS、INDIRECT、TEXT
- 漢字の入った普通の文をローマ字表現に戻す方法(IME)
- Word の表内のセルが右揃えの状態で Back space キーは使ってはいけません
- Microsoft Office 2010 で、文書を追加で開くだけで『セキュリティエラー』と出るので対処
- Office Word の 『何だそれ???』
- Microsoft Office で、『クリップアートを表示できません』と表示される場合の対処
- SkyDrive の PowerPoint のアニメーションが3つしかありませんでした
- オンラインで『Word』( OneDrive )


1) の修正は以下のページを参考にしました




