• ベストアンサー

エクセルについての質問です。

エクセルについての質問です。 図をご覧いただくと質問内容が大体理解いただけるかも しれませんが、セルに入力する数値により、列が削除される 関数をご教示ください。マクロを組みたいと考えています。 よろしくお願いします。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.2

関数がエクセルの普通のワークシート関数を意味しているなら、列削除なんて出来ませんよ。 関数がVBAのユーザー作成関数ならありえる。 >列が削除される は列の非標示はどうだろう。 添付図の下のほうに別の表があると列非表示はまずいだろうが。 また#1の例のように必要な列の一部のセルの値を指定した列の個所に持ってくるのもありえるかもしれない。 また場合によってはVBAではイベントの考えで処理する必要がある。 以上質問内容があいまいで、VBAと言っていながら、エクセルの経験が十分で無いように感じる。 ーーー E5の2の場合の例では,G,I,J,K列を非表示にする。質問の例の要求の一部だが。 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$E$5" Then If Target = 2 Then Columns("g:g").EntireColumn.Hidden = True Columns("i:i").EntireColumn.Hidden = True Columns("j:j").EntireColumn.Hidden = True Columns("k:k").EntireColumn.Hidden = True Else Columns("g:g").EntireColumn.Hidden = False Columns("h:h").EntireColumn.Hidden = False Columns("i:i").EntireColumn.Hidden = False Columns("j:j").EntireColumn.Hidden = False Columns("k:k").EntireColumn.Hidden = False End If End If End Sub ーー ご回答#1のような例では、ぢ他のデータの一部第2列の部分を横のセル範囲に表示すれば良いので少し簡単。

mame1218
質問者

お礼

お礼が遅くなりすみません。 回答頂きありがとうございました。 大変助かりました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.1

マクロではありませんが…… 列を削除すると言う発想を変えましょう。 表(元データ)の中から必要な列をのデータを取り出して表示します。 添付の図を見てください。 対象月入力セルがE5、元データがC10:F15に有るとしたばあい、G3セルに↓の式を入れ、G7までコピーしてください。 =IF(COUNTIF(C$10:F$10,E$5)=0,"",HLOOKUP(E$5,C$10:F$15,ROW()-1,FALSE)&"")

mame1218
質問者

お礼

回答頂きありがとうございました。 図まで挿入頂き、本当に分かりやすかったです。 BAにするか大変悩みましたが、すみません。

すると、全ての回答が全文表示されます。

関連するQ&A