![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?08b1c8b)
sheet1
A B C D E
日付 名前 事由
1 はさん 休み
4 いさん 早退 9:00~12:00
sheet2
A B C D E... AF
日付 1 2 3 4... 31
いさん 早退
ろさん
はさん 休み
---------------------
シフト表を作成しており、提出された届出をsheet1に入力し、
sheet2に反映させるようにしたいです。
・早退、遅刻の場合はDに入力したコメントを挿入(勤務時間 9:00~12:00)
・反映後にsheet1のE列に”済”
・次に入力した場合は”済”の次から反映
・該当するセルに入力があった場合はメッセージボックスを出し、スキップして次の入力へ
・事由ごとにセルに色付け(休み:青 早退:ピンク 遅刻:オレンジ)
上記の項目を含めてマクロを作成することは可能でしょうか?
担当を直接入力するため、sheet2の欄には関数は使えません。
よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
別所で回答をした者なのですが、
http://oshiete.goo.ne.jp/qa/10883143.html
そのお書きになったコードは、関数からの発想だと思います。
ワークシート関数は、しょせんVBAにとって借り物なのです。ExcelとVBAは、インターフェイスでつながっているだけです。その方式で頑張ってみるのもよいけれども、それはエラーが出たときに、そのエラーの対処法は、逆に、難しくなるのです。
今回の場合は、私は、関数での処理というのは、基本的には賛成はしかねますが、マクロの場合は、1~2週間程度での知識は最低でも必要かもしれません。
こちらは、気まぐれの上に、制作の依頼であることは承知で書きましたが、私がダメだと思うなら、次の親切な方を探してください。ここには、ずっと辛抱強くお付き合いしてくれる奇特な人もいますから。というか、私は、本当は、今週は、そんなに暇ではないのです。焦っているくせにここで書いててよいのかという状態でして……。とにかく、前回のコードがクリアしないようでしたら、こちらのものは一切見捨ててください。来週になれば少し落ち着くのですが。
ご質問者さんの条件や環境を知らないままでピタッと合うようには、こちらは作れません。
なお、
CommandButton1_Click() 'シートをまたぐようなコードは、特にActiveX コントロールは使わないほうがよいです。フォームコントロールのボタン用に作りました。
Windows 10 以降、ActiveX コントロールは不調が多いようです。
また、私は、標準モジュールを使うことを希望します。そうしないと、モジュールの親オフジェクトの負担が増えるのです。
Set list = ws.Range("B2:AF35")
Set list1 = ws.Range("B2:B35")
これを見る限りは、私の書いたコードの位置関係が違うようですね。
No.1
- 回答日時:
できるとは思いますが、
そのシフト表作成の中で何が分からないのでしょうか。
「全部代わりに作って!」
と言うのは【質問】ではなく【依頼】ですので、他で依頼されることを強く勧めます。
シフト表を作るうえで分からない点を分かるようにすることが「疑問・問題点の解決」ですから、
作ってもらったマクロを使えば問題が解決するのではありません。
目の前にある「疑問・問題点」を先送りにするだけです。
(条件が少しでも変わったらマクロの習性に手も足も出ないのでは意味がないということです)
・・・余談・・・
>担当を直接入力するため、sheet2の欄には関数は使えません。
そんなことはありませんよ。
名前の箇所を手入力するだけで、表が完成するように数式を記入することができます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) 従業員増減対応で当番種類の増減対応な当番表 21 2022/07/19 07:30
- Excel(エクセル) Excel 売上管理シートに入力した売上データを、日報に自動反映させたいと考えています。 売上管理シ 3 2023/04/29 18:08
- Excel(エクセル) Excelで日報を自動で作成したい 売上管理シートに入力した売上データを、日報に自動反映させたいと考 1 2023/04/29 18:07
- Excel(エクセル) 出退勤管理の早退時間について 4 2023/08/21 15:22
- Excel(エクセル) 出退勤管理の遅刻・早退時間について 3 2023/08/10 15:33
- Visual Basic(VBA) VBA 別sheetからの転記なのですが 2 2023/05/22 15:55
- Access(アクセス) Accessで予定表を作成しようとしてます。 テーブル フィールド名 連番 オートナンバー型 年月日 2 2023/07/23 11:40
- Excel(エクセル) SUMIFSと日付変換 10 2023/04/16 15:38
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Excel(エクセル) エクセルカレンダーに予定表を反映したいです。 6 2022/09/30 14:39
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・【大喜利】【投稿~1/31】『寿司』がテーマの本のタイトル
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ドロップダウンリスト 自動表...
-
Excelについて
-
Excelで日報を自動で作成したい...
-
マクロ 入力規則は残し文字の...
-
autocad 数値が表示されなくな...
-
Googleドキュメントで数式を書...
-
VBAの日付チェックでオーバーフ...
-
【スプレッドシート】時間入力...
-
excelのInputBoxで日本語入力OF...
-
エクセルの質問です。 行数の最...
-
エクセルの入力規則のプルダウ...
-
エクセルVB ポップアップウィ...
-
弥生会計05、「摘要」入力について
-
accessテキストボックスで月日...
-
ドロップダウンリストを2列で...
-
バーコードリーダーを使ってフ...
-
バッククォートの入力方法
-
キーボードの文字入力がおかしい
-
小数点以下の入力規則
-
エクセルで入力規則(リスト)...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ドロップダウンリスト 自動表...
-
autocad 数値が表示されなくな...
-
Excelについて
-
ドロップダウンリストを2列で...
-
VBAの日付チェックでオーバーフ...
-
エクセルVB ポップアップウィ...
-
Excelで日報を自動で作成したい...
-
マクロ 入力規則は残し文字の...
-
excelのInputBoxで日本語入力OF...
-
求人情報で「SAP入力可能な方」...
-
バーコードリーダーを使ってフ...
-
エクセルで半角カナや特殊文字...
-
エクセルの質問です。 行数の最...
-
アクセス2000 クエリ抽出でBet...
-
小数点以下の入力規則
-
確定申告の医療費控除について
-
エクセル 日付超過でポップアッ...
-
特殊漢字「はし」(橋のつくり...
-
excelで第二金曜日を…
-
autocadLTで添え字文字
おすすめ情報
Private Sub CommandButton1_Click()
Dim val As String
Dim list1 As Range
Dim list2 As Range
Dim list As Range
Dim r As Integer
Dim c As Integer
Dim ws As Worksheet
Set ws = Worksheets("sheet2")
Set list = ws.Range("B2:AF35")
Set list1 = ws.Range("B2:B35")
Set list2 = ws.Range("B2:AF3")
r = Application.WorksheetFunction.Match(Range("A2"), list1, 0)
c = Application.WorksheetFunction.Match(Range("B2"), list2, 0)
val = Range("C2")
Application.WorksheetFunction.Index(list, r, c) = val
End Sub
---------------------
ここまでは組めたのですが、難しくて進みません(><)