- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:初心者ですがセルの変更について教えてください。)
初心者でもわかりやすいセルの変更方法とは?
このQ&Aのポイント
- 初心者でもわかりやすいセルの変更方法について教えてください。シフト表作成で1日分の構文を使っているが、1月分(31日)同じ構文を使う方法を教えてください。カレンダを横列に表示し、縦列は7名分です。
- エクセル初心者がセルの変更方法を教えてください。シフト表作成のために作成した構文は1日分のみ対応していますが、1月分(31日)同じ構文を使う方法を教えてください。カレンダを横列に表示し、縦列は7名分です。
- セルの変更方法について教えてください。エクセル初心者ですが、シフト表作成のために作成した構文は1日分のみ対応しています。1月分(31日)同じ構文を使う方法を教えてください。カレンダを横列に表示し、縦列は7名分です。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
こんにちわ 回答者はあなたのワークシートの配置がわからないので、 返事のしようがないのです。 推測ですが、Targetをある決まったセル範囲にしたいのでと思います。 次のようなステートメントになります 詳しくはぐーぐるで vba intersect で検索してください。 If Intersect(Target, Range("セル範囲")) Is Nothing Then それから、これも推測です。 worksheets("勤務表").range("o10") = worksheets("勤務表").range("o11") worksheets("勤務表").range("o12") ↓ i = Target.Row j = Target.Column Worksheets("勤務表").Cells(i + 1, j) = Worksheets("勤務表").Cells(i + 2, j) = worksheets("勤務表").Cells(i + 3, j) = のようにすればと思います。
お礼
回答ありがとうございます。 質問の仕方が悪く、申し訳ありませんでした。 早々、実践してみます。
補足
ki-aaa 様 先日はありがとうございました。 早速、プログラムを修正してみましたが、実行時エラー(intersect メゾッドは失敗しました)表示され上手くいきません。 修正構文は次の通りですがカレンダ表示下のセルに勤務形態が入力されたら、出勤時間、退社時間、実働時間を各セルに表示させたいのですが シート(勤務表) O8からAS8 (カレンダ表示) O9からAS9 勤務形態 O10からAS10 出勤時間 O11からAS11 退社時間 O12からAS12 実働時間 シート(勤務時間) A1からD9(勤務時間表示) A列に勤務コードリスト作成 A列 B列 C列 D列 1行 勤務形態 出勤時間 退社時間 実働時間 2行 3行 4 5 6 private sub worksheet_change(byval target as range) dim r integer, myrenge as range set target = worksheets("勤務時間").range("勤務コード") with target if intersect(target,range("勤務表").range("O9:AS9")) is nothing then r = applicastion.worksheetfunction,match(target.value,myrange,0) i = target.row j = target.column worksheets("勤務表").cells(i+1,j).value=worksheets("勤務時間").range("B1").offset(r-1).value worksheets("勤務表").cells(i+2,j).value=worksheets("勤務時間").renge("C1").offset(r-1).value worksheets("勤務表").cells(i+3,j).value=worksheets("勤務時間").renge("D1").offset(r-1).value end if end with end sub