前回質問詳細
https://oshiete.goo.ne.jp/mypage/history/question/

解決で出来て、感激のあまり…早とちりして、締め切ってしまいました<m(__)m>
大変失礼して、申し訳ございませんでした。

ループの使い方をご教授お願いします。
Sub 請求書作成()

Worksheets("請求書").Range("a2").Value = Worksheets("管理表").Range("c4").Value
Worksheets("請求書").Range("a3").Value = Worksheets("管理表").Range("d4").Value
Worksheets("請求書").Range("b4").Value = Worksheets("管理表").Range("b4").Value
Worksheets("請求書").Range("c14").Value = Worksheets("管理表").Range("a4").Value
Worksheets("請求書").Range("c17").Value = Worksheets("管理表").Range("g4").Value
Worksheets("請求書").Range("b18").Value = Worksheets("管理表").Range("h4").Value
Worksheets("請求書").Range("b20").Value = Worksheets("管理表").Range("m4").Value
Worksheets("請求書").Range("d16").Value = Worksheets("管理表").Range("o4").Value
Worksheets("請求書").Range("b16").Value = Worksheets("管理表").Range("n4").Value

ループという技を是非取り入れてみたいです。

ご教授お願いします。

質問者からの補足コメント

  • 添付の写真が管理表のシートです。
    A列番号は順番にはなっていません。(管理番号みたいなものです。)
    A列は50行まで表があります。

    お手数ですが、前回の質問の時のコードに上書き記載お願いしてもよろしいでしょうか?

    「続き…エクセルvba ①SUBメニューを」の補足画像1
    No.2の回答に寄せられた補足コメントです。 補足日時:2017/06/15 23:35
  • お世話になります。
    改めて考え方を変えてみました。
    「管理表」のn2に検索値を設けたかったので、If Target.Address = "$n$2" Then
    に入れ替えてみました。
    そうすると、請求開始日を変更するコードの  Range("n5").Formula = WorksheetFunction.EDate(Range("n5"), Range("g5"))
    がn5はちゃんと起動しますが、n6以降が動かないです。

    管理表の画像を添付します。
    ご教授お願いします。

    ★「請求書」にvlookをいれてみました。
    これで請求書に転記出来ました。
    プリントアウトのコードを入れました。

    「続き…エクセルvba ①SUBメニューを」の補足画像2
    No.4の回答に寄せられた補足コメントです。 補足日時:2017/06/17 15:22
  • ごめんなさい(慌慌)
    請求書に書いたvlookを消しました(汗)
    動作確認してみました。
    管理表のシートから請求書シートに転記されないです。
    私の上書きミスだと思うのですが。
    ご教授お願いします。
    請求書のシート添付します。

    管理表のn2で請求書に転記するって自己流で上書きしみました。文字オーバーで一部抜粋です。
    コード変更箇所です。
    Address = "$n$2" Then

    請求書と管理表の文字を入れ替えました。Worksheets("管理表")の部分3か所です。

    「続き…エクセルvba ①SUBメニューを」の補足画像3
    No.12の回答に寄せられた補足コメントです。 補足日時:2017/06/17 16:19
  • 大変心強いです。ありがとうございます。

    請求書シートのc16に=管理表!N2と入れたら成立出来ました。
    これで大丈夫でしょうか?

    >イミディエイトウィンドウに
    ? Target.Address
    と打って何が表示されたか教えてください。

    >地道な作業ですけど、これをちゃんと出来ないで
    理解はほぼ不可能といってもいいと思います。

    一行づつ辿っていって、コードの動作を把握したいと思っているんですが、うまくできません。
    画像を添付します。

    ご教授お願いします。

    「続き…エクセルvba ①SUBメニューを」の補足画像4
    No.22の回答に寄せられた補足コメントです。 補足日時:2017/06/18 16:30
  • ステータスが無いと表示されたので、あれこれ調べていました。
    ごめんなさい(汗)出来たと思っていたのは、消したとばかり思っていたvlook関数が入っていました(/o\)
    vlookを消して請求書シートに頂いたコードを入れて、請求書の番号”c16”に管理番号を入れても無反応でしたので、
    ステップ実行しました。
    画像を添付します。
    管理表と請求書は補足で送った通りのモノで変わりはないです。

    私が無知過ぎて、yokomayaさんの大切な時間を割いていただいてるのが、心苦しくって。
    VLOOKUP関数を使って、管理表のn2に検索値を設けて、請求書に内容を添付させることにします。

    以前回答頂いた、
    Range("n5").Formula = WorksheetFunction.EDate(Range("n5"), Range("g5"))
    でn6以降50列分同じ操作出来るコードはありますか?

    「続き…エクセルvba ①SUBメニューを」の補足画像5
    No.23の回答に寄せられた補足コメントです。 補足日時:2017/06/18 21:10
  • 諦めなくっていいんですか…ありがとうございます。
    私も本当は最後まで完走したいんです。

    どうしたら簡単で分かりやすいシートになるのかも、デザインから見直していて、ずっと悩んでて、作り直したりしてしまって…
    一番最初質問から大分変ってしまいました。

    コードが読めないので、注釈もお願いします。

    補足出来るところを見つけたので、
    管理表シートを添付します。
    画像が一つしか添付できないので、2つに分けて、請求書は後からすぐに送ります。

    本当にありがとうございます。
    諦めかけたのに、先が見えてきそうで、うれしいです。

    「続き…エクセルvba ①SUBメニューを」の補足画像6
    No.3の回答に寄せられた補足コメントです。 補足日時:2017/06/18 23:02
  • 引き続き、請求書シートを添付します。

    甘えっぱなしで、本当に恐縮です。
    お手数ですが、今後も勉強用サンプルとして大事にしていきたいので、コードと注釈
    お願いします。

    「続き…エクセルvba ①SUBメニューを」の補足画像7
    No.17の回答に寄せられた補足コメントです。 補足日時:2017/06/18 23:11
  • ごめんなさい。

    ①座標はあります。

    ②コードの前を選択して、一列茶色い●と茶色く反転されて、カーソル行の前まで実行やF5を押しても、「実行可能なステートメントがありません」になるのです。

    「続き…エクセルvba ①SUBメニューを」の補足画像8
    No.14の回答に寄せられた補足コメントです。 補足日時:2017/06/19 00:40
  • 今こんな状態です。今晩送った画像が最新です。

    この画像は4枚目。

    ごめんなさい。勝手に色々手を加えててしまって、VLOOKUPした時に座標シート消してしまってたり、21時のは座標シートが無かったです。

    勝手なことしてて、本当にごめんなさい。

    「続き…エクセルvba ①SUBメニューを」の補足画像9
      補足日時:2017/06/19 01:17
  • 今この状態です(>_<)

    「続き…エクセルvba ①SUBメニューを」の補足画像10
    No.28の回答に寄せられた補足コメントです。 補足日時:2017/06/19 01:22

A 回答 (32件中1~10件)

オブジェクトが必要ですっていうのは


Targetが存在しないので出てるんです。
つまり、実行が始まったときにTargetは生成されるので
実行が始まらない限り受け付けられません。
    • good
    • 0

>イミディエイトに


>? Target.Address
>と入力して、
>If Target.Address =
>の行にブレークポイントを設定して
>ステップインしてもやはり同じ状況で、電子音がして、弾いてしまいます。

順番をどうして入れ替えるの?
意味が全く異なるよ。

まずイミディエイトウィンドウを使って
Target等の実行中の情報を見る為には
実行中であることが必須条件なわけ。

実行中かどうかは、黄色になっている行があるかどうか
あれば、その行の手前までは実行済で、今から
黄色の行に入るところってこと。

だから実行が一時停止してないと意味ないんです。
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2017/06/21 18:26

? Target.Address


の件はNo20にありますけど
前提条件がそこに書いてある通りです。

満たしてませんよね。多分。
    • good
    • 0
この回答へのお礼

>ブレークポイントはどうなってるの?
もしそこで止まらないのなら
If Target.Address =
の行にブレークポイントを設定して
C14に入力してください。
そしてイミディエイトウィンドウに
? Target.Address
と打って何が表示されたか教えてください。

イミディエイトに
? Target.Address
と入力して、
If Target.Address =
の行にブレークポイントを設定して
ステップインしてもやはり同じ状況で、電子音がして、弾いてしまいます。

ごめんなさい。
ついていけるように必死で頑張りますので、よろしくお願いします。

お礼日時:2017/06/19 16:35

わかりました。


Application.EnableEvents = True 
をイミディエイトウィンドウに打ってください。

さっきエラーが出た時にイベントが禁止された状態で
止まっているので走らないんです。

続きはまた明日。おやすみなさい。
    • good
    • 0
この回答へのお礼

今日もご指導ありがとうございました。
遅くまでお付き合いいただいて、心から感謝しております。
お疲れさまでした。

掲示板が見にくくなってしまったので、続きとしてスレット立てておきます。

>Application.EnableEvents = True 
を打ち込んで実行しただけですが、画像もつけておきます。

おやすみなさい。

お礼日時:2017/06/19 02:00

>イミディエイトウィンドウに


? Target.Address
と打って何が表示されたか教えてください。

これ僕のをそのまま打って何なのですか?
イミディエイトウィンドウが判らないのかな?

図の部分がイミディエイトウィンドウです。
もし表示されていなければ、VBEの表示メニューにあります。

てか、あなたが喋らないことをどうやって答えたらいいんでしょう?
この真意は聞かせてください。
「続き…エクセルvba ①SUBメニューを」の回答画像28
この回答への補足あり
    • good
    • 0
この回答へのお礼

上記のプライベートサブは「請求書」シートのモジュールに貼っているんです。
あと、督促状(同じ座標)です。

お礼日時:2017/06/19 01:30

①座標はあります。


では、21:10の補足の図で、黄色に色が変わっていますね。

>請求書の番号”c16”に管理番号を入れても無反応でしたので、
>ステップ実行しました。
まず、これどうやってステップ実行してるんですか?
ステップ実行の前に、開始はC16への入力しかないんですが
ブレークポイント無しにステップ実行へ行けることが判りません。
説明お願いします。

むしろその行でエラーで止まったのなら理解できます。
その場合、メッセージは何ですか?

>ステータスが無いと表示された
これは、恐らく記憶違いだと僕は考えています。
見たこともなければ、ググっても存在しない。
そんなことが今偶然起こるとは思えません。
お願いしているのは動作確認ですので、動作をレポートしてほしいんです。

>カーソル行の前まで実行やF5を押しても、「実行可能なステートメントがありません」になるのです。
当然ですね。
だってC16へ入力したら始まるって説明してるじゃないですか。
これは特別なSubで、注釈にも書いたとおりに、WorkSheet上のセルの値に変更があると呼び出されるんです。
(何かが起きたことを契機によびだされるそれがイベントと呼ばれます)
    • good
    • 0

尋ねていることに答えることがない限り次に進めません。


これを解決しないで僕は他の事には一切進みませんので。
他の話にに振るのは時間の無駄です。

自分の話したいことよりも
答え残しがないかをまず確認してください。
話したいことを考えずに、訊かれたことにまず答えてください。

答えてもらうために①と②と番号を振って
最後に念押ししてるんです。
    • good
    • 0

ごめんなさい。


今は動作確認のために念押しで①と②を尋ねてるところです。
他にとらわれずまず優先お願いします。
    • good
    • 0

>ステータスが無いと表示されたので、あれこれ調べていました。


長年、EXCELを触ってますが見たことのないメッセージです。
本当に文言の間違いはないでしょうか。
再現させてみてください。

>ごめんなさい(汗)出来たと思っていたのは、消したとばかり思っていたvlook関数が入っていました(/o\)
何が入っていても動作に直接の関係は全くありません。
座標のシートは関係ありますけど。
座標のシートは添付した通りに準備頂いているでしょうか?

>vlookを消して請求書シートに頂いたコードを入れて、請求書の番号”c16”に管理番号を入れても無反応でしたので、
>ステップ実行しました。
>画像を添付します。
ちょうど黄色の色が変わっているところ、もし座標のシートが
準備されていなければインデックスが有効範囲にありませんと
表示されると思います。


①No1.添付図のシートは作っていただいてますか?

>管理表と請求書は補足で送った通りのモノで変わりはないです。

>私が無知過ぎて、yokomayaさんの大切な時間を割いていただいてるのが、心苦しくって。
>VLOOKUP関数を使って、管理表のn2に検索値を設けて、請求書に内容を添付させることにします。

それは出来るのですか?
でも、仮にマラソンだとしたら35km位は終わってると思います。
お互い、リタイヤはもったいなくないですか?
少なくとも僕は完走したいし、させたいです。

>以前回答頂いた、
>Range("n5").Formula = WorksheetFunction.EDate(Range("n5"), Range("g5"))
でn6以降50列分同じ操作出来るコードはありますか?

どんどん、本筋からずれることばかり考えずに
今、目の前にある動作確認にとりあえず、ちゃんと向き合ってほしいです。
ゴールは遠くは無いんですよ。

② ちなみにブレークポイントはご理解いただけないですか?
no14の添付図通りなんですけど。

①と②返事お願いします・
    • good
    • 0

えっと、今お願いしてるのはNo15です。


丸のとこをクリック(最初は何もないけど)してほしいの。
それをブレークポイントを設定するといいます。
肝心のこれが抜けてたからわからないね、ごめん。
そのブレーキポイントをセットしてからC14に番号を
そのまま入力してくれたらいいですよ。
21とか。
それで丸のところで止まるかどうかを教えてほしいんです。
この回答への補足あり
    • good
    • 0
1  2  3  4 次の回答→

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報