• 締切済み

EXCEL のマクロを作りたいんですが・・・

マクロはあまり詳しくありません。マクロの記憶で設定し、多少内容の変更をする程度です。 マスターのBOOKがあり、月ごとにデータを入力し、その都度名前を付けて保存します。 (データの量はまちまちです) Sheet1にデータを入力し、Sheet2には関数が入っております。 使いたいのはSheet2にあるデータなのですが、データが無い欄は関数が入っていますので、そのままではデータとして使うのが面倒です。 CSVで出力するにしても、空の関数の欄が,,,,と出ます。 データが入っているセルだけを範囲指定して、値の貼り付けをし、使用していない空のセルの関数を消すというマクロが出来るでしょうか?

みんなの回答

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

結果どういうデータが、どこへ出来れば良いのか、分かりません。 それで解答が入らないのでは。 具体例を上げるか、下記も踏まえ説明をお願いします。 >使いたいのはSheet2にあるデータなのですが どう「使いたい」のでしょう。 >データが無い欄 関数値が0か空白のセルですね。 >そのままではデータとして使うのが面倒です。 「使う」のがどう言う風に面倒なのか。 コンピュタ的に言って、何に使うのか。 >CSVで出力するにしても、空の関数の欄が,,,,と出ます これがないと、表に読みこんだ時、左詰めになって、列関係が崩れるからで、これがないと、一般的には困るでしょう。 >データが入っているセルだけを範囲指定して 編集-ジャンプ-セル選択-数式-数値で選択できるかもしれません。 >使用していない空のセルの関数を消すという 関数を消せば、後々困るのではないでしょうか。 パターンとして下記ぐらいかな。 Sub test01() Dim cl As Range For Each cl In Selection If cl.HasFormula Then If Not (cl = 0) Then ' (処理) End If Else If Not (cl = 0 Or cl = "") Then ' (処理) End If End If End Sub

SL-Blue
質問者

お礼

補足:マクロの記憶でやろうとすると選択範囲が決まってしまい、上手く出来ませんでした。教えていただいたマクロを実行するとコンパイルエラーになります。何か記入しないとだめですか?

SL-Blue
質問者

補足

imogasiさん。ありがとうございます。 書き方がまずくてすみません。 実はこれが出来れば、全く違うもので使いたいデータが二つあり、ひとつはB欄を名前とするとBを基準に並び替えてDの集計をするもの(この場合Dは金額です)データ→集計で集計表を作るのですが、関数があると印刷する時、不要な白紙のページが出来るため、先に削除しています。 もうひとつはCSVデータとして出力し、別のソフトに使うのですが、TEXTで開いた時,,,の行が複数あると重複しているというエラーになってしまう為です。 どちらもマスターがあるため、関数を残す必要はありません。     A   B   C   D 1   101  AA  XX  ZZ 2   106  BB  XX  ZZ 3   104  CC  XX  ZZ 4   103  DD  XX  ZZ この下の行から関数 : : 上の表で言うと、単純にA1:D4の範囲を値に変換し、その下の行以下の関数を消すというのでわかるでしょうか? (単位は行ごとで途中に空欄は無いため、A1:D4のブロックで考えてください) 貼るのは同じ場所です。 現在はA1:D4をコピーし空白のE1などに値で貼り付けA1:D4の関数に入った列を列削除するという方法をとっています。 今気がつきましたが、不要な関数を消せれば値の貼り付けはしなくていいのかも??? 長くなってすみません。よろしくお願いします

関連するQ&A