【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をクリック選択し、カーソルを選択した四角の右下に当てるとマウスが十字マークになる>そのままクリックして下までドラッグして放す(記入したいところまで)

  • その位置でもう一度クリックし今度は右にドラッグして放す(記入したいところまで)

  • 日時予約表の好きなところに文字を書くと、空き日時表の対応箇所に自動でバツマークがつく

  • 結合を使用する場合、更新しないことがあるが、どちらかのウィンドウを保存して閉じて、再び開くことで更新される