【Excel】「日時予約表」から「空き日時表」を自動でつくりたい
手順
デスクトップでなにもないところを右クリック>新規作成>フォルダ>
予約表
と入力してエンター予約表ファオルダをダブルクリックで開く>フォルダの中のなにもないところを右クリック>新規作成>Microsoft Excel ワークシート作成をクリック>
日時予約表
と入力してエンターフォルダの中のなにもないところを右クリック>新規作成>Microsoft Excel マクロ有効ワークシート作成をクリック>
空き日時表
と入力してエンター空き日時表をダブルクリックして開く
ファイル>オプション>リボンのユーザー設定>ウィンドウ右側の
開発
の文字の左横にある四角をクリックしてチェックを付ける>OKをクリック元の画面に戻るので、開発>Visual Basicをクリックすると新しいウィンドウが開く
ウィンドウ左側のなにもないところを右クリック>挿入>標準モジュールをクリック
新しく出てきた
空き日時.xlsm - Module1(コード)
のなにもないところをクリックするとそこに文字が打てるようになるそこに以下の文をマウスでドラッグ選択して右クリック>コピー
Function CheckEmpty(R As Range) If R.MergeCells Then If "" = R.MergeArea.Offset(0, 0).Value Then CheckEmpty = "" Else CheckEmpty = "×" End If Else If "" = R.Value Then CheckEmpty = "" Else CheckEmpty = "×" End If End If End Function
先程の文字が打てるところをクリックで選択したあと右クリック>貼り付け
MIcrosoft VisualBasic for Application - 空き日時表.xlsm
ウィンドウを、バツボタンを押して閉じる予約表フォルダから日時予約表をダブルクリックして開きA1に好きな文字を入れる
日時予定表.xlsx
ウィンドウを閉じずに、空き日時.xlsm
ウィンドウでA1の四角をクリックして選択し、=CheckEmpty(
と入力そのまま、
日時予定表.xlsx
ウィンドウのA1をクリックすると、空き日時.xlsm
ウィンドウに=CheckEmpty([日時予約表.xlsx]Sheet1!$A$1
と表示されている表示されている文をクリックして
$
マークを消して=CheckEmpty([日時予約表.xlsx]Sheet1!A1
に変えてエンターA1にバツが表示されれば成功。しかしこのままではA1しか記入されない
A1をクリック選択し、カーソルを選択した四角の右下に当てるとマウスが十字マークになる>そのままクリックして下までドラッグして放す(記入したいところまで)
その位置でもう一度クリックし今度は右にドラッグして放す(記入したいところまで)
日時予約表の好きなところに文字を書くと、空き日時表の対応箇所に自動でバツマークがつく
結合を使用する場合、更新しないことがあるが、どちらかのウィンドウを保存して閉じて、再び開くことで更新される