平成23年10月27日
NECユーザー会実務担当者研修会資料
◆書類送付書綴
◆文書発信・収受処理
- NECユーザー会ユーザーシステム研究会
-
於 ラ・フランス温泉館「ホテル湯楽々」
岩手県紫波郡紫波町小屋敷字新在家90番地
東日本硝子業厚生年金基金
1
EXCEL2003 VBA仕様
ここからダウンロードしてください。
当基金のホームページ(Http://www.glskkn.com)
→サイトマップ→ダウンロード
または、
Http://www.glskkn.com/download/download.htm
1.書類送付書綴(sofusho.xls)
今回の書類送付書綴のExcelは、書類送付書に特化したプロ
グラムではありません。
FAX送信書、起案書、稟議書などエクセルで作成したものがあれ
ば、そのシートをこのプログラムにコピーすればそのまま使うこと
ができます。
《このプログラムの狙い》
ワードで書類送付書を作成している方は多いと思います。
しかし、ワードの場合、原則として1人1文書となり、保存する
場合は、いちいち名前をつけて保存しなければなり、複数文書が
ある場合、煩雑となり、検索も容易ではありません。
また、使い回しした場合、記録が残りません。
◆エクセルでは複数文書をシートに保存できます。
◆発送した記録も残り、作成済みの文書をシートコピーすれば
効率的に作成することができます。
◆シート数が増えても、容量はそれほど問題ありません。
シートの検索もハイパーリンク機能を使えばそれほど問題あり
ません。(ただし、シートの名前のつけ方に工夫が必要です。)
2
3
①コピーしたいシートを選択する。
②右クリック→操作フォーム表示をクイック
③シートコピー(追加)にチェックを入れる④実行ボタンを押す。
→シート名一覧の後(左から2番目)にコピーされます。
④シート名を変更
選択
①右クリック→操作フォーム表示をクイック
③シート名一覧作成にチェックを入れ、実行ボタンを押す。→
シート名一覧が作成されます。
※シート名を変更したり、挿入、削除などした場合も実行してく
ださい。
ハイパーリンクでシート移動も簡単。シート
名一覧を実行すれば自動的にハイパーリ
ンク作成します。
◎シート数が増えた場合、名前を変えて保存(例、書類送付書綴(○○
~○○))した後、操作メニューでシート削除を選択し実行。→左から3
番目以降のシートが削除され、シート名一覧も書き換わります。
◎ページを選択し、操作メニュー「印刷」を押せば印刷できます。
◎操作メニュー「終了」で、上書き保存し、エクセルを終了します・
4
☆VBAフォーム・モジュール
(1)ユーザーフォーム
Private Sub Cmd実行_Click()
If Optコピー.Value = True Then
シートコピー
End If
If Optシート名変更.Value = True Then
シート名変更
End If
If Opt印刷.Value = True Then
印刷
End If
If Opt戻る.Value = True Then
シート一覧へ戻る
End If
If Opt一覧.Value = True Then
シート名取得
End If
If Opt削除.Value = True Then
シート削除
End If
If Opt保存.Value = True Then
UserForm1.Hide
終了処理
End If
Unload UserForm1
UserForm1.Hide
End Sub
Private Sub cmd終了_Click()
Unload UserForm1
UserForm1.Hide
End Sub
5
(2)標準モジュール
Sub 操作フォーム表示()
UserForm1.Show
End Sub
Sub シート一覧へ戻る()
Worksheets("シート一覧").Activate
End Sub
Sub シートコピー()
'アクティブなシートを1番目にコピーします。
'ActiveSheet.Copy Before:=Sheets(1)
ActiveSheet.Copy Before:=Sheets(2)
'日付をI6シートに転記します。
’Cells(6, "I") = Date
I6のセル今日の日付を入れている(今回削除)
End Sub
Sub 印刷()
ActiveSheet.PrintOut
End Sub
左から2番目のシートの前にコピー
Sub シート名変更()
Dim ShtNam
ShtNam = Application.InputBox("シート名を入力してください", "シート名入力")
Worksheets(1).Name = ShtNam
End Sub
Sub シート削除()
Worksheets("シート一覧").Activate
cnt = ThisWorkbook.Sheets.Count
MsgBox "シートを削除する前にこのブックを名前を変えて保存してください。"
MsgRes = MsgBox("左から2番目まで残し、後のシートを全部削除します。シートの削除を実行しますか?", vbYesNo, _
"シート削除")
If MsgRes = vbYes Then
For i = cnt To 3 Step -1
Application.DisplayAlerts = False
Worksheets(3).Delete
Next i
End If
CL = Int(cnt / 20) * 2 + 2
Range(Cells(2, "D"), Cells(21, CL)).Select
Selection.Clear
Cells(2, "B").Select
シート名取得
End Sub
6
Sub シート名取得()
Worksheets("シート一覧").Activate
cnt = ThisWorkbook.Sheets.Count
CL = Int(cnt / 20) * 2 + 2
Range(Cells(2, "B"), Cells(21, CL)).Select
Selection.Clear
Cells(2, "B").Select
MyPath = ThisWorkbook.Path
MyName = ThisWorkbook.Name
n=2
CL = 2
For i = 2 To cnt
ShtNam = Worksheets(i).Name
ハイパーリンク
ShtNam2 = "file:///" & MyPath & "\" & MyName & "-" & ShtNam & "!A1"
If n > 21 Then
CL = CL + 2
n=2
End If
ActiveSheet.Hyperlinks.Add Cells(n, CL), Address:="", SubAddress:=ShtNam & "!A1", TextToDisplay:=ShtNam
n=n+1
Next i
End Sub
Sub 終了処理()
ThisWorkbook.Save
Application.Quit
End Sub
Sub 操作フォーム消去()
Application.CommandBars("Cell").Controls("操作フォーム表示").Delete
End Sub
7
(3)ThisWorkBook
~ワークブックを開いた時に即座に自動実行させる
エクセルを終了したとき実行(右クリックメニューを戻す)
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.CommandBars("Cell").Controls("操作フォーム表示").Delete
End Sub
エクセルを起動したとき実行(操作フォーム表示)
Private Sub Workbook_Open()
Dim Newb
Set Newb = Application.CommandBars("Cell").Controls.Add()
With Newb
.Caption = "操作フォーム表示"
.OnAction = "操作フォーム表示"
.BeginGroup = True
End With
End Sub
8
2.文書発信・収受処理(bunshosyujyu.x
文書の発信および収受をデータベース化し、文書発信簿および文書
収受簿を作成するとともに、会議スケジュールも管理できます。
発信簿や受信簿はかさばり保管するのに苦労します。その点、ディ
スクに登録しておけば、過去のデータの検索も容易にできます。
また、発信簿や受信簿の印刷しても、普通紙(A3)なので、保存
し易いです。
(Ⅴ)
…(Ⅰ)
…(Ⅱ)
…(Ⅲ)
…(Ⅳ)
発信・受信データを入力すれば自動的に
変更されます。またいちいち帳簿を開か
なくても最終番号が確認できます。
9
(Ⅰ)文書発信簿データ登録・照会
(Ⅰ)-2
使う項目を選択できます。(コンボボックス)
これらの項目は「発信設定」シートの項目を読
み表示しています。
10
11
「発信設定」シート
コンボボックスの内容
はここで設定してま
す。
担当者や件名など変
更してください
「発信簿データ」シート
(Ⅰ)-2会議登録ボタン
「会議一覧」シート
12
13
※右側は省略しています。
「発信簿」シート
(Ⅱ)文書受信簿データ登録・照会
「受信設定」シート
14
(Ⅲ)文書発信簿・受信簿印刷
(Ⅳ)ワークシート移動・保守
全画面表示のため、
シート見出しがないため
これでシート間の移動を
します。
移動先からメニューに戻る
には(Ⅴ)操作メニュー
で行います。
15
(Ⅴ)操作メニュー
(注)メニューが表示されている場合、操作メニューは実行できま
せん。9ページのメニューを閉じるボタンを押すか、または
(Ⅳ)ワークシート移動・保守ボタンで別のシートに移動し
実行してください。
右クリックで操作フォーム表示を
選択してください。(3ページ参照)
《このメニュー実行できること。》
①メニューを閉じるボタンで消した
メニューを再表示します。
②移動先からメニューシートへ戻ります。
③会議一覧は登録順なので、日付順に
シートします。
④全画面表示にします。
⑤全画面表示を解除します。
⑥⑦⑧ツールバー、メニューバーなど
元の状態に戻します。
⑨データを削除し、年度初めの状態に
します。
⑩上書き保存してエクセルを終了します。
…①
…②
…③
…④
…⑤
…⑥
…⑦
…⑧
…⑨
…⑩
16
☆VBAフォーム・モジュール
17
(1)ユーザーフォーム
①メニューForm
Private Sub Cmd受信処理_Click()
受信Form.Show
End Sub
Private Sub Cmd発信処理_Click()
発信Form.Show
End Sub
Private Sub Cmd文書印刷_Click()
印刷Form.Show
End Sub
Private Sub Cmd処理終了_Click()
Unload メニューForm
メニューForm.Hide
Application.DisplayFullScreen = False
ツールバー表示復帰
メニューバーリセット
ThisWorkbook.Save
Application.Quit
End Sub
Private Sub Cmd閉じる_Click()
メニューForm.Hide
End Sub
Private Sub UserForm_Initialize()
Me.StartUpPosition = 0
Me.Left = 60
Me.Top = 100
End Sub
②発信Form
Private Sub UserForm_Initialize()
Dim LastRow As Long
Dim setcell As Object
Dim setcell2 As Object
Dim cnt
As Integer
Dim cnt2
As Integer
With Me.Cmb発信番号
cnt = 0
.ColumnCount = 3
Set setcell = Worksheets("発信簿データ").Cells(5, 1)
r=5
bango = 1
Do Until setcell.Value = ""
.AddItem
.List(cnt, 0) = setcell.Offset(0, 0)
.List(cnt, 1) = setcell.Offset(0, 1)
.List(cnt, 2) = setcell.Offset(0, 4)
cnt = cnt + 1
r=r+1
bango = bango + 1
Set setcell = setcell.Offset(1, 0)
Loop
If cnt = 0 Then
.AddItem
.List(cnt, 0) = 1
Me.Lbl位置.Caption = 5
End If
'ドロップダウンリストの幅を指定
.ListWidth = 200
'2列指定したリストの幅をそれぞれ指定(セミコロンで区
切って文字列指定)
.ColumnWidths = "20;50;100"
.ListIndex = 0
End With
'得意先名は直接入力しないのでロック。タブ移動によ
るフォーカス取得も行わない
項目クリア
Me.Cmb発信番号.Value = bango
Me.Lbl位置.Caption = r
Me.Lbl処理.Caption = "新規"
ymd = Date
yy = Year(ymd)
mm = Month(ymd)
dd = Day(ymd)
Me.Txt発信年月日.Text = yy & "/" & mm & "/" & dd
Me.Txt施行年月日.Text = yy & "/" & mm & "/" & dd
With Me.Cmb担当
cnt = 0
.ColumnCount = 1
Set setcell2 = Worksheets("発信設定").Cells(4, 1)
Do Until setcell2.Value = ""
.AddItem
.List(cnt, 0) = setcell2.Offset(0, 0)
cnt = cnt + 1
Set setcell2 = setcell2.Offset(1, 0)
Loop
'ドロップダウンリストの幅を指定
.ListWidth = 100
2列指定したリストの幅をそれぞれ指定(セミコロンで区切っ
て文字列指定)
.ColumnWidths = "100"
.ListIndex = 0
End With
Me.Cmb担当.Value = ""
With Me.Cmb件名
cnt = 0
.ColumnCount = 1
Set setcell2 = Worksheets("発信設定").Cells(4, 2)
Do Until setcell2.Value = ""
.AddItem
.List(cnt, 0) = setcell2.Offset(0, 0)
cnt = cnt + 1
Set setcell2 = setcell2.Offset(1, 0)
Loop
18
'ドロップダウンリストの幅を指定
.ListWidth = 400
'2列指定したリストの幅をそれぞれ指定(セミコロンで区
切って文字列指定)
ColumnWidths = "400"
.ListIndex = 0
End With
Me.Cmb件名.Value = ""
With Me.Cmb受信人
cnt = 0
.ColumnCount = 1
Set setcell2 = Worksheets("発信設定").Cells(4, 3)
Do Until setcell2.Value = ""
.AddItem
.List(cnt, 0) = setcell2.Offset(0, 0)
cnt = cnt + 1
Set setcell2 = setcell2.Offset(1, 0)
Loop
'ドロップダウンリストの幅を指定
.ListWidth = 400
'2列指定したリストの幅をそれぞれ指定(セミコロンで区切って文字列指定)
.ColumnWidths = "400"
.ListIndex = 0
End With
Me.Cmb受信人.Value = ""
With Me.Cmb発信人
cnt = 0
.
ColumnCount = 1
Set setcell2 = Worksheets("発信設定").Cells(4, 4)
Do Until setcell2.Value = ""
.AddItem
.List(cnt, 0) = setcell2.Offset(0, 0)
cnt = cnt + 1
Set setcell2 = setcell2.Offset(1, 0)
Loop
'ドロップダウンリストの幅を指定
.ListWidth = 200
2列指定したリストの幅をそれぞれ指定(セミコロンで区切っ
て文字列指定)
.ColumnWidths = "200"
.ListIndex = 0
End With
Me.Txt発信年月日.SetFocus
End Sub
19
③受信Form
Private Sub UserForm_Initialize()
Dim LastRow As Long
Dim setcell As Object
Dim setcell2 As Object
Dim cnt
As Integer
Dim cnt2
As Integer
With Me.Cmb受信番号
cnt = 0
.ColumnCount = 3
Set setcell = Worksheets("受信簿データ").Cells(5, 1)
r=5
bango = 1
Do Until setcell.Value = ""
.AddItem
.List(cnt, 0) = setcell.Offset(0, 0)
.List(cnt, 1) = setcell.Offset(0, 1)
.List(cnt, 2) = setcell.Offset(0, 5)
cnt = cnt + 1
r=r+1
bango = bango + 1
Set setcell = setcell.Offset(1, 0)
Loop
If cnt = 0 Then
.AddItem
.List(cnt, 0) = 1
Me.Lbl位置2.Caption = 5
End If
'ドロップダウンリストの幅を指定
.ListWidth = 200
'2列指定したリストの幅をそれぞれ指定(セミコロンで区切
って文字列指定)
.ColumnWidths = "20;50;100"
.ListIndex = 0
End With
項目クリア2
Me.Cmb受信番号.Value = bango
Me.Lbl位置2.Caption = r
Me.Lbl処理2.Caption = "新規"
ymd = Date
yy = Year(ymd)
mm = Month(ymd)
dd = Day(ymd)
Me.Txt受信年月日.Text = yy & "/" & mm & "/" & dd
Me.Txt発信年月日2.Text = ""
With Me.Cmb記号
cnt = 0
.ColumnCount = 1
Set setcell2 = Worksheets("受信設定").Cells(4, 2)
Do Until setcell2.Value = ""
.AddItem
.List(cnt, 0) = setcell2.Offset(0, 0)
cnt = cnt + 1
Set setcell2 = setcell2.Offset(1, 0)
Loop
'ドロップダウンリストの幅を指定
.ListWidth = 100
'2列指定したリストの幅をそれぞれ指定(セミコロンで区
切 って文字列指定)
.ColumnWidths = "100"
.ListIndex = 0
End With
Me.Cmb記号.Value = ""
With Me.Cmb件名2
cnt = 0
.ColumnCount = 1
Set setcell2 = Worksheets("受信設定").Cells(4, 3)
Do Until setcell2.Value = ""
Set setcell2 = setcell2.Offset(1, 0)
Loop
'ドロップダウンリストの幅を指定
.ListWidth = 400
'2列指定したリストの幅をそれぞれ指定(セミコロンで区
切 って文字列指定)
20
.ColumnWidths = "400"
With Me.Cmb備考
.ListIndex = 0
cnt = 0
End With
Set setcell2 = Worksheets("受信設定").Cells(4, 6)
Me.Cmb件名2.Value = ""
Do Until setcell2.Value = ""
With Me.Cmb発信人2
.AddItem
cnt = 0
.List(cnt, 0) = setcell2.Offset(0, 0)
.ColumnCount = 1
cnt = cnt + 1
Set setcell2 = Worksheets("受信設定").Cells(4, 4)
Set setcell2 = setcell2.Offset(1, 0)
Do Until setcell2.Value = ""
Loop
.AddItem
'ドロップダウンリストの幅を指定
.List(cnt, 0) = setcell2.Offset(0, 0)
.ListWidth = 200
cnt = cnt + 1
'2列指定したリストの幅をそれぞれ指定(セミコロンで区
Set setcell2 = setcell2.Offset(1, 0)
切 って文字列指定)
Loop
.ColumnWidths = "200"
'ドロップダウンリストの幅を指定
.ListIndex = 0
.ListWidth = 400
End With
'2列指定したリストの幅をそれぞれ指定(セミコロンで区切って文字列指定 Me.Cmb備考.Value = ""
.ColumnWidths = "400"
Me.Txt受信年月日.SetFocus
.ListIndex = 0
End Sub
End With
Me.Cmb発信人2.Value = ""
With Me.Cmb受信人2
cnt = 0
.ColumnCount = 1
Set setcell2 = Worksheets("受信設定").Cells(4, 5)
Do Until setcell2.Value = ""
.AddItem
.List(cnt, 0) = setcell2.Offset(0, 0)
cnt = cnt + 1
Set setcell2 = setcell2.Offset(1, 0)
Loop
'ドロップダウンリストの幅を指定
.ListWidth = 200
'2列指定したリストの幅をそれぞれ指定(セミコロンで区切って文字列指定)
.ColumnWidths = "200"
.ListIndex = 0
End With
Me.Cmb受信人2.Value = ""
21
④会議Form
Private Sub Cmd終了3_Click()
会議Form.Hide
Unload 会議Form
End Sub
Private Sub Cmd登録3_Click()
Set setcell = Worksheets("会議一覧").Cells(2, 1)
kbn = Me.Lbl区分.Caption
bango = Val(Me.Lbl番号.Caption)
sw = 0
Do Until setcell.Value = ""
If (setcell.Offset(0, 8) = kbn) And (setcell.Offset(0, 9) = bango) Then
Exit Do
End If
Set setcell = setcell.Offset(1, 0)
Loop
With setcell
.Offset(0, 0) = Me.Txt会議.Text
.Offset(0, 1) = Me.Txt主催者.Text
.Offset(0, 2) = Me.Cmb出席者.Value
.Offset(0, 3) = Me.Txt開催日.Text
.Offset(0, 3).NumberFormatLocal = "ggge""年""m""月""d""日"""
MyDate = .Offset(0, 3)
wk1 = Weekday(MyDate)
youbi = Choose(wk1, "日曜日", "月曜日", "火曜日", "水曜日", "木曜日", "金曜日", "土曜日")
.Offset(0, 4) = youbi
.Offset(0, 5) = Me.Txt時.Text & ":" & Me.Txt分.Text
.Offset(0, 6) = Me.Txt場所.Text
.Offset(0, 7) = Me.Txt摘要.Text
.Offset(0, 8) = kbn
.Offset(0, 9) = bango
End With
Cmd終了3_Click
End Sub
22
⑤印刷Form
Private Sub Cmd印刷_Click()
Dim wk_s As Integer
Dim wk_e As Integer
If Opt発信.Value = True Then
Set sht = Worksheets("発信簿")
ElseIf Opt受信.Value = True Then
Set sht = Worksheets("受信簿")
Else
MsgBox "帳票が選択されていません。"
Exit Sub
End If
wk_s = Val(Cmb開始番号.Value)
wk_e = Val(Cmb終了番号.Value)
If Cmb開始番号.Value = "" Or Cmb終了番号.Value = "" Then
MsgBox "開始または終了番号が選択されていません。"
Exit Sub
End If
If wk_e < wk_s Then
MsgBox "終了番号が誤っています。"
Exit Sub
End If
Worksheets("発信設定").Cells(2, 14) = wk_s
Worksheets("発信設定").Cells(2, 15) = wk_e
開始ページ = Worksheets("発信設定").Cells(2, 16)
終了ページ = Worksheets("発信設定").Cells(2, 17)
'MsgBox 開始ページ & "と" & 終了ページ
sht.PrintOut From:=開始ページ, To:=終了ページ, Copies:=1, Collate:=True
End Sub
Private Sub Cmd中止_Click()
印刷Form.Hide
Unload 印刷Form
End Sub
23
Private Sub Opt発信_Click()
On Error Resume Next
With Me.Cmb開始番号
cnt = 0
.ColumnCount = 3
Set setcell = Worksheets("発信簿データ").Cells(5, 1)
Do Until setcell.Value = ""
.AddItem
.List(cnt, 0) = setcell.Offset(0, 0)
.List(cnt, 1) = setcell.Offset(0, 1)
.List(cnt, 2) = setcell.Offset(0, 4)
cnt = cnt + 1
Set setcell = setcell.Offset(1, 0)
Loop
'ドロップダウンリストの幅を指定
.ListWidth = 200
'2列指定したリストの幅をそれぞれ指定(セミコロンで区切って文字列指定)
.ColumnWidths = "20;50;100"
.ListIndex = 0
End With
With Me.Cmb終了番号
cnt = 0
.ColumnCount = 3
Set setcell = Worksheets("発信簿データ").Cells(5, 1)
Do Until setcell.Value = ""
.AddItem
.List(cnt, 0) = setcell.Offset(0, 0)
.List(cnt, 1) = setcell.Offset(0, 1)
.List(cnt, 2) = setcell.Offset(0, 4)
cnt = cnt + 1
Set setcell = setcell.Offset(1, 0)
Loop
'ドロップダウンリストの幅を指定
.ListWidth = 200
'2列指定したリストの幅をそれぞれ指定(セミコロンで区切って文字列指定)
.ColumnWidths = "20;50;100"
.ListIndex = 0
End With
End Sub
Private Sub Opt受信_Click()
On Error Resume Next
With Me.Cmb開始番号
cnt = 0
.ColumnCount = 3
Set setcell = Worksheets("受信簿データ").Cells(5, 1)
Do Until setcell.Value = ""
.AddItem
.List(cnt, 0) = setcell.Offset(0, 0)
.List(cnt, 1) = setcell.Offset(0, 1)
.List(cnt, 2) = setcell.Offset(0, 5)
cnt = cnt + 1
Set setcell = setcell.Offset(1, 0)
Loop
'ドロップダウンリストの幅を指定
.ListWidth = 200
'2列指定したリストの幅をそれぞれ指定(セミコロンで区切って文字列指定)
.ColumnWidths = "20;50;100"
.ListIndex = 0
End With
With Me.Cmb終了番号
cnt = 0
.ColumnCount = 3
Set setcell = Worksheets("受信簿データ").Cells(5, 1)
Do Until setcell.Value = ""
.AddItem
.List(cnt, 0) = setcell.Offset(0, 0)
.List(cnt, 1) = setcell.Offset(0, 1)
.List(cnt, 2) = setcell.Offset(0, 5)
cnt = cnt + 1
Set setcell = setcell.Offset(1, 0)
Loop
'ドロップダウンリストの幅を指定
.ListWidth = 200
'2列指定したリストの幅をそれぞれ指定(セミコロンで区切って文字列指定)
.ColumnWidths = "20;50;100"
.ListIndex = 0
End With
End Sub
24
⑥シート移動Form
Private Sub Cmd決定_Click()
If Opt発信簿.Value = True Then
Worksheets("発信簿").Select
ElseIf Opt受信簿.Value = True Then
Worksheets("受信簿").Select
ElseIf Optシート1.Value = True Then
Worksheets("発信簿データ").Select
ElseIf Optシート2.Value = True Then
Worksheets("受信簿データ").Select
ElseIf Optシート3.Value = True Then
Worksheets("発信設定").Select
ElseIf Optシート4.Value = True Then
Worksheets("受信設定").Select
ElseIf Optシート5.Value = True Then
Worksheets("会議一覧").Select
End If
シート移動Form.Hide
End Sub
Private Sub Cmd中止_Click()
シート移動Form.Hide
Unload シート移動Form
End Sub
25
⑦UserForm1
Private Sub Cmd実行_Click()
操作フォーム消去
If Opt表示.Value = True Then
戻る
End If
If Opt移動.Value = True Then
戻る
End If
If Opt並替.Value = True Then
会議並替
End If
If Opt全画面表示 = True Then
戻る
End If
If Opt全画面解除.Value = True Then
全画面解除
ツールバー表示復帰
メニューバーリセット
End If
If Opt表示消去.Value = True Then
戻る
End If
If Opt復元.Value = True Then
全画面解除
ツールバー表示復帰
メニューバーリセット
End If
If Optリセット.Value = True Then
全画面解除
ツールバー表示復帰
メニューバーリセット
End If
If Opt保存.Value = True Then
UserForm1.Hide
終了処理
End If
Unload UserForm1
UserForm1.Hide
End Sub
Private Sub cmdキャンセル_Click()
操作フォーム消去
End Sub
Private Sub 操作フォーム消去()
Unload UserForm1
UserForm1.Hide
End Sub
26
(2)標準モジュール
①メイン処理
Sub 表示()
メニューForm.Show
End Sub
Sub 表示2()
発信Form.Show
End Sub
Sub 表示3()
受信Form.Show
End Sub
Sub 表示4()
会議Form.Show
End Sub
Sub メニュー非表示()
メニューForm.Hide
End Sub
Sub 操作フォーム表示()
'************************************************
'「ThisWorkbook」のopen,closeで表示、非表示設定
'************************************************
UserForm1.Show
End Sub
Sub 終了処理()
Unload メニューForm
メニューForm.Hide
Application.DisplayFullScreen = False
ツールバー表示復帰
メニューバーリセット
ThisWorkbook.Save
Application.Quit
End Sub
27
Sub 帳簿データ番号取得()
With Worksheets("発信簿データ")
r = .Cells(65536, "A").End(xlUp).Row
If r > 4 Then
No1 = .Cells(r, "A")
ymd1 = .Cells(r, "B")
Else
No1 = 0
ymd1 = ""
End If
End With
With Worksheets("受信簿データ")
r = .Cells(65536, "A").End(xlUp).Row
If r > 4 Then
No2 = .Cells(r, "A")
ymd2 = .Cells(r, "B")
Else
No2 = 0
ymd2 = ""
End If
End With
With Worksheets("メニュー")
.Cells(7, "M") = No1
.Cells(7, "N") = ymd1
.Cells(8, "M") = No2
.Cells(8, "N") = ymd2
End With
End Sub
Sub 戻る()
Worksheets("メニュー").Select
全画面表示
ツールバー表示消去
メニューForm.Show
End Sub
Sub 会議並替()
Worksheets("会議一覧").Select
Range("D1").Select
Selection.Sort Key1:=Range("D2"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _
:=xlPinYin
Range("B13").Select
End Sub
Sub 帳簿初期化()
MsgBox "更新する前にこのブックを名前を変えて保存してください。"
MsgRes = MsgBox("発信、受信データをクリアします。実行しますか?", _
vbYesNoCancel, "帳簿初期化")
If MsgRes = vbNo Or MsgRes = vbCancel Then
Exit Sub
End If
For i = 2 To 5
Worksheets(i).Select
r = Cells(65536, "A").End(xlUp).Row
If i < 4 Then
rs = 3
Else
rs = 5
End If
Cl = Cells(rs - 1, 256).End(xlToLeft).Column
If r > rs - 1 Then
Range(Cells(rs, "A"), Cells(r, Cl)).Select
Selection.ClearContents
Cells(3, "A").Select
End If
Next i
Worksheets("会議一覧").Select
r = Cells(65536, "A").End(xlUp).Row
Range(Cells(2, "A"), Cells(r, "J")).Select
Selection.ClearContents
Cells(2, "A").Select
Worksheets("メニュー").Select
Cells(7, "M") = 0
Cells(7, "N") = ""
Cells(8, "M") = 0
Cells(8, "N") = ""
End Sub
28
②ツールバー表示
Sub ツールバー表示消去()
Application.CommandBars("Standard").Visible = False
Application.CommandBars("Formatting").Visible = False
Application.CommandBars("Web").Visible = False
With ActiveWindow
.DisplayGridlines = False
.DisplayHeadings = False
.DisplayWorkbookTabs = False
End With
ActiveSheet.DisplayAutomaticPageBreaks = False
With Application
.DisplayFormulaBar = False
.DisplayStatusBar = False
.ShowWindowsInTaskbar = False
End With
End Sub
Sub ツールバー表示復帰()
Application.CommandBars("Standard").Visible = True
Application.CommandBars("Formatting").Visible = True
With ActiveWindow
.DisplayGridlines = True
.DisplayHeadings = True
.DisplayWorkbookTabs = True
End With
ActiveSheet.DisplayAutomaticPageBreaks = True
With Application
.DisplayFormulaBar = True
.DisplayStatusBar = True
.ShowWindowsInTaskbar = True
End With
End Sub
29
Sub 全画面表示()
Application.DisplayFullScreen = True
'全画面とじるツールバー非表示
Application.CommandBars("Full Screen").Visible = False
End Sub
Sub 全画面解除()
Application.DisplayFullScreen = False
End Sub
Sub メニューバーリセット()
CommandBars("Worksheet Menu Bar").Reset
End Sub
(3)ThisWorkBook
Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error GoTo Err_Ext
Application.CommandBars("Cell").Controls("操作フォーム表示").Delete
Err_Ext:
End Sub
Private Sub Workbook_Open()
Dim Newb
Set Newb = Application.CommandBars("Cell").Controls.Add()
With Newb
.Caption = "操作フォーム表示"
.OnAction = "操作フォーム表示"
.BeginGroup = True
End With
Application.DisplayFullScreen = True
Application.CommandBars("Full Screen").Visible = False
ツールバー表示消去
Worksheets(1).Select
帳簿データ番号取得
メニューForm.Show
End Sub
30
エクセルは仕事の必需ソフト。ショートカットを
31
覚えれば、入力のスピードがアップして効率が倍増。
(1)形式を選択して貼り付け
(編集(F)⇒形式を選択して貼り付け(s))
「+」は押しなが
らの意味
①値の貼り付け
Alt
+
S
と
+
V
ひ
②書式の貼り付け
Alt
+
S
と
+
T
か
③数式の貼り付け
Alt
+
S
と
+
F
は
(2)シート名の変更
(書式(O)⇒シート(H)⇒シート(R))
※シートタブを右クリック⇒シート名の変更でも可)
Alt
+
O
ら
+
H
く
+
R
す
(3)印刷
(4)シートの切替え
(ファイル(F)⇒印刷(P)) Ctrl
Page
Ctrl
+
+
up
次ページへ
+
Page
down
前ページへ
P
せ
Ctrl
(注)ノートパソコンでFnキーがある場合はFnキーを
押しながら行う
(5)セルの選択・修正
→キーなどで選択するセルに移動し、F2
Home
先頭へ
End
を押す
セルの最終へ
(6)上書き保存
(ファイル(F)⇒印刷(S))
Ctrl
+
S
と
32
知って得するエクセル技
①コピーまたは移動したいシー
ト見出しを右クリックして移
動またはコピーを選択
②移動先ブック名の○印のとこ
ろをクリックすると、上のよ
うに表示されます。コピー又
は移動したいブック名を選択
すると、選択先のシート名が
表示されるのでシート名を選
択します。
③コピーする場合はコピーを作
成するに チェックを入れ、
OKを押せばコピーされます。
(1)シートを他のブックや新規ブックにコピー又は移動する裏技?
(注)1.コピー(移動)したいブックを開いておけば
移動先ブック名に表示されます。
2.新しいブックを選べば新規ブックにコピーさ
れ、Book1にブック名が変更になります。
そのブックに続けてコピーする場合、Book
1を選択してください。
3.コピー元に他のシートを参照する関数などがあ
る場合、コピー元にリンクがはられますので、
注意が必要です。
33
知って得するエクセル技
(2)カメラ機能
このコマンドを使うには、表示(V)、ツールバー(T)のユーザー
設定でカメラをツールバー等へ設置する必要があります。
左図のように、ユーザー設定のコマンドタブの分類からツール
を選択し、コマンドでカメラ(カメラのアイコン)を探し、これを
ツールバーなどへドラッグします。
ドラッグしたままツールバー、メニュバーの任意の位置でク
リックを離せば設置できます。
使い方は、簡単です。
他の場所へ貼り付けたい部分を範囲選択し、カメラのアイコ
ンをクリックします。マウスポインタの形が「+」になるので、
設置したいワークシート上でクリックします。
選択部分は画像として貼付られ、貼付後自由にドラックで動
かすことができます。
この画像のデータは、リンク貼り付けと同じく元のデータを修
正すると、画像の方にも反映されます。
このカメラ画像(リンク貼り付けも同じ)は、図ですから
<図>や<図形描画>のツールバーで通常の画像と同
じく加工することができます。特にカメラ画像の場合は、
枠線が太く表示されるので図形描画の「線の色」で「線
なし」を選択すれば細くすることができます。画像を選択
し、右クリックの「図の書式設定」では、色をつけたり、
サイズを調整したりなど、書式の設定も自在にすること
ができます。
→逆にこのリンクを消すことにより単なる図として他
他のブックでも使用できる。
上の項目を修正すると、画像の方にも反映されます。
34
■図の書式設定 ~図の枠線やセルを変更したときにサイズを変更するなどの設定
■基金業務での活用例
○決裁の枠線
常務
事務長
課長
○新旧規約対照表の中の別表
係長
係
新
旧
別表第2の2
生年月日別給付乗率表
昭和2年4月1日までに生まれた1,000分の7.692
昭和2年4月2日から昭和3年4
月1日までの間に生まれた者
1,000分の7.585
昭和3年4月2日から昭和4年4
月1日までの間に生まれた者
1,000分の7.477
昭和4年4月2日から昭和5年4
月1日までの間に生まれた者
1,000分の7.369
昭和5年4月2日から昭和6年4
月1日までの間に生まれた者
1,000分の7.262
昭和6年4月2日から昭和7年4
月1日までの間に生まれた者
1,000分の7.162
昭和7年4月2日から昭和8年4
月1日までの間に生まれた者
1,000分の7.054
35
© Copyright 2026 Paperzz