ここから本文です

VBAについて

bri********さん

2011/6/3011:51:32

VBAについて

従業員の勤務表を作っております。 VBAの作り方がよくわからないので教えてください。

表は、名前と日付が書かれています。
表の欄外には、○年○月(4個のセルを使って)と表示されており、手入力で○の所に23と6をいれると
表の中の日付部分が自動的に変わるようになってます。

マクロを使って実行しない内容は、
更新というボタンをつくり、それをクリックした時に
現在のシートの左隣に同じ表ができ上記○の部分が更新して、不要なデータを消すって事をしたいです。

方法として考えたのは、フォームを作って表示させたい年と月を指定し、新しいシートを挿入して元の表をコピー
し不要データを削除すればいいのではないかと思いましたが
どのようにコードを書いていいのかわかりません。

不要なデータを削除するのは、エクセルの画面で実際にマウスで記録させればいいのだと思いますが
フォームを作ったときにどのようにコードを書けばいいでしょうか?

まったくの初心者なので、分かりにくい質問かも知れませんが宜しくお願い致します。

閲覧数:
478
回答数:
1
お礼:
25枚

違反報告

ベストアンサーに選ばれた回答

rut********さん

2011/6/3015:17:52

まったくの初心者では、ここでフォームのコード例を示しても、記述する場所等が分からなければ意味が無くなってしまいます。

なので、フォームの代わりにインプットボックスを使用した例です。
コードが理解できたなら、インプットボックスをフォームに置き換えたら良いと思います。

Sub sample()
Dim NowYear As String '現在の年号
Dim NowMonth As String '現在の月
Dim InYear As String '入力した年号
Dim InMonth As String '入力した月
Dim myMsg As String 'メッセージ

'Default表示用の年号、月を求める
NowYear = Format(Date, "e")
NowMonth = Format(Date, "m")

'年月の入力処理
With Application
'年号の入力
myMsg = "作成年号を入力してください" & vbLf & vbLf
myMsg = myMsg & " 例)平成23年の場合は[23]を入力"
InYear = .InputBox(myMsg, "作成年の入力", NowYear, , , , , 2)
If InYear = "" Or InYear = "False" Then Exit Sub 'キャンセル処理
'月の入力
myMsg = "作成月を入力してください" & vbLf & vbLf
myMsg = myMsg & " 例)1月の場合は[1]を入力"
InMonth = .InputBox(myMsg, "作成年の入力", NowMonth, , , , , 2)
If InMonth = "" Or InMonth = "False" Then Exit Sub 'キャンセル処理
End With

With ThisWorkbook.Sheets("Sheet1") '←適切なシート名に変更する
'年月の出力処理
.Range("B1").Value = InYear
.Range("D1").Value = InMonth
'シートコピー処理
.Copy After:=Sheets(Sheets.Count) '右端に追加
End With

'代表的な削除例
With ActiveSheet
.Name = InYear & "_" & InMonth 'シートの名前の設定
.Range("A1").Value = "" 'セルの中身だけ削除
.Rows("10:20").Delete Shift:=xlUp '行全体を削除し、上に詰める
.Columns("F:K").Delete Shift:=xlToLeft '列全体を削除し、左に詰める
End With
End Sub

この回答は投票によってベストアンサーに選ばれました!

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる