
No.3ベストアンサー
- 回答日時:
後ろから
④一つのボタンで以下の3種類を実行したいのですが、マクロの登録が1つしか選べないのです。
は?
念の為、うかがいたいのですが、三つに分けておく必然も
あるのですか?
もしなければ、コードの中身を一か所に詰め込んでしまうだけです。
なぜ、そう考えないのか、逆に理解できないです。
もし分けておく必然があるとして
連続して三つ呼ぶのを設けるなら
sub test()
call sub1
call sub2
call sub3
end sub
こんな感じです。
>③関数の挿入です。
> G列 N列 M列
> 請求間隔 請求開始 請求期間終了
> 3 6/1 8/31
>N列の「請求開始」の部分の相談ですが、プリントアウト実行後に次回請求日に書き換えたいのです。
なぜ、関数の挿入なんですか?
手でそれを試しましたか?
関数で実現できるんですか?
手でうまくいってないことが、マクロだから出来る理由は
到底僕には考えられません。
なぜかって?
数式の中にそのセルを使うことは循環参照ってエラー出ますよね?
>6月1日の請求書をプリント後、N列の請求開始を9/1にしたいのです。
このままでいいのでは?
それがedateだったか。なるほどね。
自分で使わないから、edateって何だったっけと思ってた。
そこに関数を書くんじゃなくて
Range("n4").Formula = WorksheetFunction.EDate(Range("n4"), Range("g4"))
とワークシート関数で計算するなら、この値というのを代入します。
WorksheetFunctionを使う場合、カッコ内もセルなら
VBAでのセルの扱いにしないといけない点にご注意下さい。
ただね、管理表シートはどこへ行ったんですか?
請求書をコードでは選択していますよね。
ここは説明貰わないと理解できないです。
ここでちょっと振り返りましょう。
>質問その 3
>③関数の挿入でデバック表示を修正したいです。
>「管理表」シートのn4にg4が指定する数だけ変更したいです。
関数の挿入と思い込んでるのは置いといて、「デバッグ表示を修正したい」
これが明らかにおかしいんです。
デバッグ表示がなぜ出るんでしょう。
そうです。
あなたのコーディングに何らかの間違いがあるからです。
多分循環参照が出たのではないですか?
間違ってるのにデバッグ画面が出なかったらそれの方が
大問題ですよね。
ここでもしこれを尋ねるなら、どの行で何というエラーが
表示されるのを直したいとか、尋ねるべきなんです。
例えていうなら「ブレーカーが落ちるので、ONに固定しておきたい」
みたいな。電力使う量減らさないとね。
原因の方が尋ねるべきことである点は覚えておいてください。
そしてその次、管理表シートのくだりは、いまならどう説明されます?
伝えるための要件がいくつも抜けてますよね。
こちらの言葉不足で、申し訳ありませんでした。
まずはお詫び申し上げます。
ご教授ありがとうございます。
①SUB翌月転記の部分のコードありがとうございました。
転記出来ました。
②SUBを3つに分ける必要は無かったです。私のミスでした。
subを外したら、無事解決できました。
思い通りのモノが出来上がり、感激しております。
私一人の力では出来ませんでした。
大変感謝しております。
ありがとうございました<m(__)m>
No.4
- 回答日時:
>①請求書作成でシンプルにできる方法をご教授お願いします。
が抜けた。
でも、あなたの質問は本当にどうしてこうなんでしょう?
想像できませんか?
請求書を発行するにあたって、会社によって環境が異なります。
ただ請求書が必要なら手書きでいいんだし、ワープロでも
構わない。でもEXCELを使いたいならそこに理由があるはずだ。
合計が計算できるから?
それなら請求書テンプレートで事足りますよね。
あなたにとって必要な事が誰にでも必要ってものじゃないでしょ?
それなのに、シンプルってただ尋ねる。
あなたが必要な事は、あなたにしか判り得ないのに
そんな訊き方って・・・・。
言葉が足りず、お気を悪くさせてしまって、申し訳ありませんでした。
NO.2の回答をいただいた時に、で「ループ」で出来るのかと思ってしまいまして。
SUB請求書のコードを読み直すときに、シンプルの方が確認しやすいかと思いまして…
vbaの本で勉強中で、色々なコードを使ってみたいと…
これからもご教授頂きたいです。
No.2
- 回答日時:
ま、あんまりつれない返事もどうかと思うので
End With を End Subに変更すれば
そこは動きそうな。
ちょっとコードを論じたいけど、どうして画像にしたんでしょうね?
コピペできないのがツライ・・・・。
最初の請求書作成()同じ構文が延々と並んでるでしょ?
動きゃいいっちゃ、それまでですが
プログラムなのに、いまいちスマートじゃない気がしません?
ま、方法論は多数あるので、具体的には挙げませんが
ループにしたいとこですね。僕なら。
将来、コピー先、コピー元のセル座標に追加や変更があったとき
探しにくいじゃないですか?
コードにこういう形で埋め込むよりも
セルに置いて、そこだけ編集できるのが便利と思います。
請求書印刷の
Sheets("請求書").Select
ActiveWindow.SelectedSheet.PrintOut
は
Sheets("請求書").PrintOut
で十分です。
マクロ記録はマウスで操作するのでSelectが多数入りますが
要らない場合が90%位はあるので、可読性(読みやすさ)向上のために
出来るだけ、なくせるところは省略することをお勧めします。
最後に
>質問その 3
>③関数の挿入でデバック表示を修正したいです。
>「管理表」シートのn4にg4が指定する数だけ変更したいです。
その2と②は取りやめになっちゃったのかな?
いやぁ、それにしても日本語が険しいですねぇ。
「「管理表」シートのn4にg4が指定する数だけ変更する」
なんの事でしょう?
僕の洞察力が足りないのかな?
少なくともコードを見る限り管理表シートは
一度も出現してませんね。
回答ありがとうございます。
以前も沢山お世話になり、重ねてお礼を申し上げます。
①請求書作成でシンプルにできる方法をご教授お願いします。
③関数の挿入です。
G列 N列 M列
請求間隔 請求開始 請求期間終了
3 6/1 8/31
N列の「請求開始」の部分の相談ですが、プリントアウト実行後に次回請求日に書き換えたいのです。
6月1日の請求書をプリント後、N列の請求開始を9/1にしたいのです。
④一つのボタンで以下の3種類を実行したいのですが、マクロの登録が1つしか選べないのです。
ご教授お願いします。
補足にコードを添付します。
No.1
- 回答日時:
回答の前にさ、
End With
って With文の終わりの明示だから
そこまでが With文の有効範囲ですよってことですよ。
当然Withが前になければこけます。
逆にSubは必ず
End Sub
で閉じないと次のSubは書けません。
ABCが分からないで文法を聞いても
無理があるのでは?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Visual Basic(VBA) 【VBA】Excelで罫線を引きたい 3 2022/07/14 12:04
- Visual Basic(VBA) ユーザーフォームの書き出しで追加のご相談 ユーザーフォームの値をシートに書き出す際、コードが表示され 2 2022/08/05 10:58
- Visual Basic(VBA) VBA 複数のブックに同じ列を表示させる方法 2 2022/07/20 23:49
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Visual Basic(VBA) 複数指定セルの可視セルのみを別シートに転記するVBAについて 2 2022/05/27 21:19
- Excel(エクセル) 【マクロ】スクショ印刷がうまく動かない件 5 2022/12/06 17:37
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) Changeイベントで複数セルへの貼り付けおよび値削除時に1個目のセルのみエラーになる 3 2022/12/21 09:07
- Visual Basic(VBA) エクセル365のVBAで困っています。どう修正したらよいか添削をお願いします 2 2023/05/03 17:35
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルの下部のシートタブの...
-
シート全体を他のブックのシー...
-
Excelで保護のかかったシートの...
-
ワークシートの行が途中から表...
-
EXCELでコピーしたグラフのデー...
-
Excelでハイパーリンク先の表示...
-
エクセルで別シートの同じ位置...
-
エクセルで数式は残したまま他...
-
エクセルvba ①SUBメニューを...
-
1から5までの整数のみ入力可に...
-
エクセルのマクロについて教え...
-
エクセルVBA シートの保護につ...
-
シート保護したExcelへの画像貼...
-
エクセルでセルの書式設定がで...
-
エクセルでの複数シートへの同...
-
VLOOKが反映されない
-
エクセル97で、シート内の範...
-
エクセルのマクロについて(可...
-
ロックしたセルのコピー&貼り付け
-
【Excel マクロ】貼り付け先の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルの下部のシートタブの...
-
エクセルで別シートの同じ位置...
-
ワークシートの行が途中から表...
-
エクセルでセルの書式設定がで...
-
シート全体を他のブックのシー...
-
EXCELでコピーしたグラフのデー...
-
Excelで保護のかかったシートの...
-
エクセルで数式は残したまま他...
-
excelで勝手にテキストボックス...
-
ロックしたセルのコピー&貼り付け
-
VBA アクティブでないシートの...
-
シート保護してても並び替えを...
-
Excelで大量の2000個のリストを...
-
行の挿入ができなくなった
-
Excelでハイパーリンク先の表示...
-
【エクセル】数式のセル番地を...
-
シート保護したExcelへの画像貼...
-
フィルタされたものを切り取り...
-
スプレッドシートが真っ白にな...
-
worksheetクラスのcopyメソッド...
おすすめ情報