再びエクセルのマクロについて

このQ&Aのポイント
  • 前回の質問を進める中で新たな疑問が生まれました。具体的には、マクロでの自動実行や印刷後の処理についてです。
  • 前回の質問で得たアドバイスを元に進めているものの、マクロでの自動実行が定義されておらずエラーが発生しています。
  • 印刷処理が終わった後に入力リストの欄外に「済」印をつけたいが、方法がわかりません。
回答を見る
  • ベストアンサー

再びエクセルのマクロについて

前回、http://oshiete1.goo.ne.jp/kotaeru.php3?q=1179484で、質問させていただき、 だいぶ前に進みました。ありがとうございました。 さて、imogasiさんに誘導いただいた、 imogasiさんに、こちらのページを誘導していただき (http://okweb.jp/kotaeru.php3?q=113505) 拝見させていただきましたが、新たに疑問が出たのでまた教えてください。 例もそのまま移させてもらって実行しているつもりなのですが、(5)を自動でマクロで実行する、という部分がどうしても定義されていません。というエラーが出てしまいます。  また、印刷処理が済んだら、入力リストの欄外にでも、 ”済”印をつけるには、どのようにしたら良いのでしょうか。何度も申し訳ありませんが、よろしくお願いいたします。

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

  • ベストアンサー
  • taocat
  • ベストアンサー率61% (191/310)
回答No.3

こんにちは。 >Sub 楕円1_Click() >Worksheets("sheet1").Activate >For i = 2 To 3 '300 変数 i に色が付いて「変数が定義されてません」と表示されるんですよね。 モジュールの1行目に、Option Explicitが書かれていますよね。 これが「変数の宣言を強制する」というコードで、今回のように変数の宣言がないとエラーが出ますので下記のように変数宣言文を追加します。 ーーーーーーーーーーーーーーーーーーーーーー Sub 楕円1_Click()   Dim i   '●●変数の宣言●● Worksheets("sheet1").Activate For i = 2 To 3 '300 ーーーーーーーーーーーーーーーーーーーーーーー 当然のことに、Option Explicitがなければ今回のエラーはでませんが、タイプミスの発見や可読性の為にも必ずOption Explicitはつけておきましょう。 以上です。

natu-natu555
質問者

お礼

できましたっ!!!!!!!! taocatさん、ありがとうございました。 助かりました。

その他の回答 (2)

  • taocat
  • ベストアンサー率61% (191/310)
回答No.2

No.1 です。序にサンプルコードをアップ。 ーーーーーーーーーーーーーーーーーーーーーーーー Sheet1 を「済みリスト」とし、1行は見出しとする     A    B 1  コード  済欄 2 3 ーーーーーーーーーーーーーーーーーーーーーーーー Sheet2 を「領収書」とし、B5に部品コードがあるとする また、印刷ボタンもここにあるとする Sheet2のシートモジュールに次のコードを挿入 Private Sub CommandButton1_Click()  Dim LastRow As Long  ActiveSheet.PrintOut  LastRow = Worksheets("Sheet1").Range("A65536").End(xlUp).Row  With Worksheets("Sheet1")  .Cells(LastRow + 1, "A").value = Range("B5").value  .Cells(LastRow + 1, "B").value = "済み"  End With End Sub   上記のコードを上記の条件で新しいブックを開き試してみて下さい。お望み?どおり動作するはずです。 以上です。

natu-natu555
質問者

お礼

どうもありがとうございました。 まだまだ勉強が必要のようです・・・。 またよろしくお願いいたします。

  • taocat
  • ベストアンサー率61% (191/310)
回答No.1

こんにちは。 Imogasiさんのコードを使用しているみたいですから、この回答の適任者はImogasiさんだろうと思いますが気付いたことをちょっと。 >(5)を自動でマクロで実行する、という部分がどうしても定義されていません。というエラーが出てしまいます いくらなんでもこれは誰も答えようがありません。何故ならそのコードが提示されてないのですから。(^^;;; それから最初の質問は「済みリスト」にコードを1件入力する度にその1件分の領収書を出力するとなってますが、ならば次の方法がよりベターだと思いますが。 (1)「領収書」シートに「印刷ボタン」を配置 (2)「印刷ボタン」押下で「領収書」を印刷 (3)印刷後に「領収書」の部品コードを   「済みリスト」のコード欄にもってくると同時に    済み欄に「済み」の文字を入れる ようするに最初の質問とは逆の発想ですね。 以上です。  

natu-natu555
質問者

お礼

教えていただき、ありがとうございます。 逆の発想の方も、合わせて勉強させていただこうと思います。 Sub 楕円1_Click() Worksheets("sheet1").Activate For i = 2 To 3 '300 Cells(1, "F") = i Range("a1:c8").PrintOut Next i End Sub という、文を教えていただいたのですが、 (丸い図形をクリックしたらマクロがスタートするように設定しています) この、3行目の For i = 2・・・・の行で、 定義されていませんと、出てしまうのです。

関連するQ&A

  • エクセルでマクロ?

    昨日もエクセルで質問しました。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=603675 引き続き表1の数値をリンクさせて表2を作っています。 また分からないところが出てきたのでお願いします。 表1の数値が「0.987」の時、表2で「0.98小さい下付き7」と表示させたいのですが、何か良い方法はありますでしょうか? |0.98|小さい下付き7|のようにセルが分かれても構いません。 マクロとか詳しくないので助けていただけると嬉しいです。 よろしくお願いします。

  • このマクロを実行し、表示させるにはどうしたらよいですか?

    初心者です。WinXP、Excel 2002を使用。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1432630 のページ の回答者No.2様のマクロを実行し、表示させるにはどうしたらよいですか? 私のやり方(解釈)が間違っているのだと思いますがこのままコピーし、実行してみましたが、エラーがでます。 1、コピー&ペーストから、もお少し、詳しく教えて  下さいませ。 2、Module1とModule2を個々のマクロで実行し、表示  する方法も併せて教えて下さいませ。

  • Access2002のマクロ教えてください。

    Access2002のマクロのアクションの項目にデスクトップにあるアプリのショートカットを実行させるアイテムはあるのでしょうか。一応見てみましたが分かりませんでした。叉無い場合VBAとしてどのように書けばよいのでしょうか。 アクションの項目の中にあるアプリケーションの実行でそのアプリのパスを書けば良いことは分かっているのですが下記の様な訳があってhttp://oshiete1.goo.ne.jp/kotaeru.php3?q=836176 それが出来ずこのような質問になりました。 宜しくお願いします。

  • [ No.964924 質問:EXCELで同じ内容の行を削除 ]について詳しく教えてください。

    エクセルで同じ内容のセルのある行を自動的に削除したく、No.964924の回答No.2を実行したいのですが、マクロがまったくわかりません。このマクロはどのように記録、実行するのでしょうか。 勉強不足で申し訳ありません。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=964924

  • エクセルマクロで

    http://oshiete1.goo.ne.jp/kotaeru.php3?q=2107311 で質問させていただきました range("c65536").end(xlup).offset(1,0).value = 100000 で、最終行から1つ下のセルに100000と出ましたが そのセルから右に8列 C-K列を塗りつぶししたいのです よろしくお願いいたします

  • このマクロを実行し、表示させるにはどうしたらよいですか?

    恐れ入ります。初心者です。WinXP、Excel 2002を使用。VBAコードは読めません。 「本gooのカテゴリ」について、まだ把握してなく、別カテゴリで同質問してしまい、その回答者様に当「Office系ソフトのカテゴリ」へとご指示されました。 質問がダブってしまいましたが、よろしくお願い致します。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1432630 のページ の回答者No.2様のマクロを実行し、表示させるにはどうしたらよいですか? このままコピーしましたが、実行できませんでした。 私のやり方(解釈)が間違っていたのだと解りました。 別のコードを追加しないと、実行できないのでしたら、何かサンプル的コードで構いませんので、 このマクロを実行し表示させる方法が、おありでしたら教えてくださいませ。 1、コピー&ペーストから、詳しく教えて下さいませ。 2、Module1とModule2を個々のマクロで実行し、表示する方法も併せて教えて下さいませ。

  • Excelでインターネットを利用して運賃計算するマクロをユーザー定義関数化できないでしょうか?

    先に http://oshiete1.goo.ne.jp/kotaeru.php3?q=1641060 で、Excel VBAでインターネットを利用して運賃計算する方法をお教えいただいたのですが、この処理をユーザー定義関数化することはできないでしょうか? 試行錯誤したのですがなかなかうまくいきません・・ ユーザー定義関数化するポイント、不可能であれば不可能である部分だけでもお教えいただけたら助かります。 どうぞよろしくお願いいたします。

  • 騙された???

    http://okwave.jp/kotaeru.php3?q=2279333 http://bicniws.okwave.jp/kotaeru.php3?q=2279333 http://oshiete1.goo.ne.jp/kotaeru.php3?q=2279333 私はどこから回答してるのでしか? 訳ワカメになりすうです。 色々な所で聞けて便利と思ったけど、全て影で繫がってる......

  • リンプがメタリカに喧嘩を売った?

    「coolな曲、探してます・・!」のbeavasさんの回答を拝見しました。 beavasさんが書いていらっしゃる「リンプがメタリカに 喧嘩を売った」って言う話、もっと詳しく知りたいです。 何処行ったらわかりますか? http://www.okweb.ne.jp/kotaeru.php3?q=41967 http://oshiete1.goo.ne.jp/kotaeru.php3?q=41967 http://www.okweb.ne.jp/iwedding/kotaeru.php3?q_id=41967

  • 「情報を得る」と知識はどう違う?

    前回の問い立ては拙かった。 出直しです。 インターネットの普及と絡めて返信お願い。 http://www.okweb.ne.jp/kotaeru.php3?q=63784 http://oshiete1.goo.ne.jp/kotaeru.php3?q=63784 http://www.okweb.ne.jp/iwedding/kotaeru.php3?q_id=63784

専門家に質問してみよう