• ベストアンサー

Excelで勤務表を作成。

勤務表を作成しています。 赤いセル「/。」は、希望休です。 勤務表の組み直しを行うため、希望休以外を一括で削除して空白にしたいのですが、そのようなマクロを組む事はできますか? 色で判別するよりも、入力してある文字「/。」で判別して、それ以外に入力してある文字を削除できるようにしたいです。

みんなが選んだベストアンサー

  • ベストアンサー
  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.1

別のシートのA1セルに、以下の式を記入し、勤務表のデータの「/。」以外のセルを空白にした表を作り、それをコピーして、元の勤務表に形式を指定して、値のみ貼り付けてはいかがでしょう。 =IF(A1="/。",A1,"")

kokosu525
質問者

お礼

VBA以外の方法を教えていただきありがとうございます。 ただ、シートが1月~12月まで並んでいるので、その方法だとシートが24枚になるので、VBAでどうにかできればと思います。

その他の回答 (3)

回答No.4

#3 行とか列を選択してしまうと、名前とか見出しが消えてしまうので、 'ネタシートで、処理対象のセル範囲を選択して実行

kokosu525
質問者

お礼

ありがとうございます

回答No.3

'ネタシートで行(範囲)を選択して実行 '罫線は消さないよ! Option Explicit Sub SweepRobo() Const xExcept = "/。" Dim xRange As Range If (Selection.Areas.Count > 0) Then Debug.Print (Selection.Areas.Count) ' For Each xRange In Selection.Areas For Each xRange In Selection If (xRange.Value <> xExcept) Then ' xRange.Clear xRange.ClearContents xRange.Interior.ColorIndex = xlNone If ((xRange.Column Mod 10) = 1) Then Debug.Print (xRange.Row & ":" & xRange.Column) End If Else Debug.Print (xRange.Row & ":" & xRange.Column & ": no Problem!!") End If Next Else End If End Sub

kokosu525
質問者

お礼

ありがとうございます

回答No.2

'ネタシートで行(範囲)を選択して実行 Option Explicit Sub SweepRobo() Const xExcept = "/。" Dim xRange As Range If (Selection.Areas.Count > 0) Then Debug.Print (Selection.Areas.Count) ' For Each xRange In Selection.Areas For Each xRange In Selection If (xRange.Value <> xExcept) Then xRange.Clear If ((xRange.Column Mod 10) = 1) Then Debug.Print (xRange.Row & ":" & xRange.Column) End If Else Debug.Print (xRange.Row & ":" & xRange.Column & ": no Problem!!") End If Next Else End If End Sub

kokosu525
質問者

お礼

回答ありがとうございます。 なにか私の説明が足りないのでしょうか。 うまく実行ができないです。 'ネタシートで行(範囲)を選択して実行 Option Explicit Sub SweepRobo() Const xExcept = "/。" Dim xRange As Range If (Selection.Areas.Count > 0) Then Debug.Print (Selection.Areas.Count) ' For Each xRange In Selection.Areas For Each xRange In Selection If (xRange.Value <> xExcept) Then ' xRange.Clear xRange.ClearContents←ここの部分に警告がでます。 xRange.Interior.ColorIndex = xlNone If ((xRange.Column Mod 10) = 1) Then Debug.Print (xRange.Row & ":" & xRange.Column) End If Else Debug.Print (xRange.Row & ":" & xRange.Column & ": no Problem!!") End If Next Else End If End Sub

関連するQ&A

  • Excel VBA 決まった文字以外を一括削除

    勤務表を作成しています。 赤いセル「/。」は、希望休です。 勤務表の組み直しを行うため、希望休以外を一括で削除して空白にしたいのですが、そのようなマクロを組む事はできますか? 色で判別するよりも、入力してある文字「/。」で判別して、それ以外に入力してある文字を削除できるようにしたいです。

  • Excelで決まった文字以外を一括削除。

    勤務表を作成しています。 赤いセル「/。」は、希望休です。 勤務表の組み直しを行うため、希望休以外を一括で削除して空白にしたいのですが、そのようなマクロを組む事はできますか? 入力してある文字「/。」で判別して、それ以外に入力してある文字を削除できるようにしたいです。 J5:AN13の範囲だけを対象範囲にして削除したいです。 この範囲以外は、スタッフ氏名や行事などの入力がされていますので消したくないです。

  • Excelで勤務表を作成しています。

    Excelで勤務表を作成しています。 1行おきにある文字をカウントしたいのです。 色々検索したり本を読んで、空白セルのカウント方法はわかりましたが、 数値ではなく、特定の文字をカウントする方法が見つかりません。   A   B 1 あ 2  3 か 4 あ 5 え 6 7 あ 略式の表ですが、たとえばこの奇数行にある”あ”だけをカウントしたいのです。 お判りの方がおられましたら、どうぞ宜しくお願い致します m(__)m

  • エクセルの勤務表で勤務者がいないセルに色をつけたい

    エクセルの勤務表で勤務者がいないセルに色をつけたい 勤務表で各勤務地に人員を配置するのですが、配置する人員が手当てできないことがあります。 配置できていないセルを一目でわかるように、セルに色をつけたいのですが、できるでしょうか。 表はA1に勤務地、B1に日勤者名、C1に夜勤者名、A2とA3は結合して勤務地の渋谷、A4とA5は結合して勤務地の上野と以下続きます。 B2に勤務者名、C2に勤務者名と以下続きます。 添付の表の赤枠のところが勤務者を手配できないセルです。 勤務者を手配できていないセルに色をつけたいのですが。 また、できればでいいのですが、空白のセルに勤務者を入力したらセルの色が無にする。 それからセルの色を残すの両方教えていただきたいのですが。 よろしくお願いします。

  • エクセルで表を作成しています。

    エクセルで表を作成しています。 500人に誰に、月に何枚配布したかの確認表を作成しています。 縦に五十音順の名簿、横に1月~12月を入力。 毎日渡した枚数をそれぞれのところに入力しています。 単月はオートフィルタから、空白セル以外を選ぶとわかるのですが。 半年の時点で誰に何枚渡しているか?を見る場合、どのようにすれば簡単にできるのでしょうか? どうぞよろしくお願いします。

  • エクセルで勤務表を作りたい。

    ・セルA1からセルAE1まで1か月31日分のセルを設けております。 ・たとえば3月度の勤務表は、2月16日から3月15日で毎月15日が締めです。  A1のセルに2014/2/16と入力し、表示は日にちだけ(yyyy/mm/dd)のdのみ表示です。  よってA1のセルは16と表示されています。 ・翌日B1のセルにはA1+1、C1のセルはB1+1・・・とすると16,17,18・・・と表示されます。  3月度は2月が28日までなので、セルAB1が3月15日となります。 ・ところが、数式はセルは31日分すべてに入っているのでAC1・AD1・AE1には3月の  16・17・18まで表示されます。 ・AC1・AD1・AE1の数式を削除すると、空白になりますが、4月度は12日で終わってしまいます。  希望としては、数式は31日分のセルすべてに入れたまま15以降16,17,18は空白にしたい ・関数IF等いろいろ試みましたがうまくいきません。 ・解決方法を伝授下さいよろしくお願いいたします。

  • エクセルでの表作成

    エクセルで表を作成するとします。ある製品の番号、数量を入力します。その製品番号、数量を、他の表(シート)に反映させます。 ある製品の数量が0になったら、反映させた表から、その製品の番号が入力されているセルを削除、又は、数値が消えて、下のセルに入力された数値が上のセルに繰り上がって、表示される。 こんな事、出来ますか?

  • エクセルで勤務シフト表の作成。

    エクセル表で年間の勤務シフト表を作成しております。 独自で考えて作っていってるんですが、改良したい点がいくつかあり教えて頂きたい点があります。 現在は色んなデータを入れているシートを一つと、1か月ごとのシフト表を12個用意しています。   まず、4月度のシートに『4月度』と入力したら日付と曜日が自動的に入る様にするにはどのような関数が使えますか? 12枚のシートは全て同じ書式なので、日付と曜日を空白にしておいて、自動的に表示したいのです。 付け加えるなら、日曜と祝日にはフォントもしくはセルに色をつけたいのです。 もう1点。社員ごとに労働時間の累計を出していきたいのですが、現在は表に社員番号を入力すれば氏名が表示されるようにしており、例えばA1のセルの個人の数字を来月度もA1のセルの人と合計する式しか入れていません。 これだと各月の表の社員の並びが変わった時、別の社員の数字を合計してしまいます。 社員番号を入れれば各月の労働時間を合計するにはいかがいたしたらよろしいでしょうか? 長文の上、説明不足があるやも知れませんが宜しくご教授下さい。

  • エクセル 特定のセルを残して一括削除

    エクセル2003で勤務シフト表を作成します。 表内のセルには、色(複数色)のついたセルや数字、記号などが入ります。 この表を何度も使いまわすのですが、 範囲を選択し、データをクリア(表はのこして白の空白)する時に一定のセル、たとえばピンクの色のついた数値または記号のセルだけを残して一括クリアしたいのです。 セルのロック書式設定とシートの保護は何度も試してみましたが上手くいきません。削除するとみな消えます。保護中はロック以外のセルもエラー表示で何も出来なくなります。 マクロ機能だと出来るのですが、これはピンクのセルが固定されている場合のみです。 ピンク(数値・記号)がどのセルに変わろうと、残る方法が知りたいのです。何か良い方法があれば教えて下さい。 よろしくお願いします。

  • Excelで勤務表を作成しています(再)。

    (前回までの投稿において質問の意図が分かりづらかったため、質問文と添付図を一部修正の上、再投稿させて頂いております) Excelで勤務表を作成しています。添付図のように、設定シートには社員表と勤務区分の表を作成しており、勤務表シートには社員名と日付毎の勤務区分を入力できる様式です。 今回の目的は、1日毎の女性用勤務(F勤務)における特定の区分(A、A研、B、B研、C、C研)をカウントしたいというものです。 例では7人程度のものですが、実際は数十人規模になるため、カウントセルが必要になりました。 例えば、F勤務が適用されているのは小野寺、高橋、山田、小林で、1日においてA、A研、B、B研、C、C研が入力されているのは小野寺、山田、小林の3人なのでE9セルには3とカウントされるようにしたいです (2以下OKという表記は無視してください)。 つきましては、E9~G9セルにはどのような関数を組み合わせればこの仕組みができますでしょうか?なお、勤務表は印刷して配布する都合上、この体裁を崩さないでやりたいです。ただ、どうしても必要な部分があればご指摘下さい。 以前に教えて頂いたSUMPRODUCTや、COUNTIF等の組み合わせを考えてみたのですが発想が出てこずに困っております。お分かりの方ご教授下さい。よろしくお願い致します。

専門家に質問してみよう