• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセル2000のマクロで質問です。)

エクセル2000のマクロで質問です

このQ&Aのポイント
  • エクセル2000のマクロで「大阪」「名古屋」と入った行の数値を別の列に反映する方法について教えてください。
  • また、特定の列に「大阪」「名古屋」が入っていても、その行の日付が空白の場合は反映させないようにしたいです。
  • さらに、「福岡」と入った行の場合は必ず日付が空白になるようにしたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。Wendy02です。 遅くなってすみません。体調を壊していたこともあるのですが、前の最終のマクロと条件とは違っていましたし、条件が読み取れなくなってしまったのです。その条件文をVBAに置き換えるのに、どうしても集中力が必要になってしまいます。 今回は、やむをえないので、禁じ手のひとつの、Cellsの中で、A1スタイルの列文字を使用することにしました。(本当は、してはならないことなのですが。) '--------------------------------------------------------------------- Sub ArrangementCr2() 'QNo.2624315, v.1.4 Dim i As Integer Dim j As Long Dim LastRow As Long Const START As Integer = 4 'LastRow = Range("M65536").End(xlUp).Row '最下行取得 '4行目からのデータのみ表示 Rows("1:" & START - 1).Hidden = True LastRow = Cells(START - 1, "M").End(xlDown).Row If LastRow < START + 1 Or LastRow > 65535 Then MsgBox "シートが違うか、データがありません。", vbCritical: Exit Sub For i = 1 To 30  Select Case i   Case 13, 16, 17, 20, 22   Case Else: Columns(i).Hidden = True  End Select Next i Application.ScreenUpdating = False For j = START To LastRow   Select Case Cells(j, "M").Value    Case "東京", "大阪"   'M列に「東京」「大阪」と入った場合には同じ行のT列の数値をAE列に反映    If Cells(j, "P").Value <> "" And Cells(j, "Q").Value <> "" Then      Cells(j, "AE").Value = Cells(j, "T").Value    Else      Cells(j, "V").EntireRow.Delete      j = j - 1    End If   'M列に「名古屋」と入った場合には   Case "名古屋"     If Cells(j, "P").Value <> "" And Cells(j, "Q").Value <> "" Then       'T列の数値をAF列に反映。       Cells(j, "AF").Value = Cells(j, "T").Value     Else       Cells(j, "V").EntireRow.Delete       j = j - 1     End If   Case "福岡"     '「福岡」と入る場合は、AG列に反映     Cells(j, "AG").Value = Cells(j, "T").Value     'V列,P列,Q列が必ず空白の状態     Cells(j, "V").ClearContents     Cells(j, "P").ClearContents     Cells(j, "Q").ClearContents   End Select Next j Application.ScreenUpdating = True End Sub 今回は、あまりチェックもなされていませんので、バックアップをしておいてからにしてください。

choroq
質問者

お礼

Wendy02さん いろいろと諸事情あるにも関わらずご無理を申してすみませんでした。 心から感謝致します。 結果上手くいきました。 また無理難題を申すかもしれませんがその際は宜しくお願い致します。 お身体ご自愛下さい。

その他の回答 (1)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんにちは。Wendy02です。 >●M列に「大阪」又は「名古屋」と入った場合には同じ行のT列の数値をG列に反映。 前の最終とは変わりませんか? Case "東京", "大阪" 前回(v.1.3)は、「大阪」は、F列だったと思います。ここを変えましたか?

choroq
質問者

お礼

Wendy02さん 補足を書いてから数日が過ぎました。 多忙の事とは思いますが、お手透きの際に御教授頂ければ幸いです。

choroq
質問者

補足

Wendy02さん 説明不足をお許し下さい。 再度確認の為前回の分をコピペします。 前回の途中で御回答頂いたところの御礼で訂正したものです。 ---------------------------------- ●M列に「東京」「大阪」と入った場合には同じ行のT列の数値をAE列に反映。但しV列が空白の場合もあります。 で、そのV列が空白の場合はその行ごと削除して全く表示も反映もさせないようにしたいです。 ●M列に「名古屋」と入った場合は同じ行のT列の数値をAF列に反映。 但しこの場合もV列が空白の場合もあります。その場合は上と同じようにはその行ごと削除して全く表示も反映もさせないようにしたいです。 ●M列に「福岡」と入った場合には同じ行のT列の数値をAG列に反映。但しこの「福岡」と入る場合はV列が必ず空白の状態です。 ---------------------------------- で、今回訂正として下記のようにしたいのです。 ●M列に「東京」「大阪」と入った場合。 同じ行のT列の数値をAE列に反映。V列が空白の場合もありますがそこは特に関係ありません。 但しP列、Q列の日付が空白の場合はその行をすべて削除します。 ●M列に「名古屋」と入った場合。 同じ行のT列の数値をAF列に反映。 但しこの場合もV列が空白の場合もありますがその場合も上と同様特に関係ありません。 但しP列、Q列の日付が空白の場合はその行をすべて削除します。 ●M列に「福岡」と入った場合。 M列に「福岡」と入った場合はT列の数値をAG列に反映するだけです。 但しこの「福岡」と入る場合はV列が必ず空白の状態でさらにP列、Q列の日付も 必ず空白です。 以上ですがまだ説明不足かもしれません。 不明な点あれば申し付け下さい。

関連するQ&A