[過去ログ]
VBAなんでも質問スレ Part2 [転載禁止]©2ch.net (1002レス)
VBAなんでも質問スレ Part2 [転載禁止]©2ch.net http://mevius.5ch.net/test/read.cgi/tech/1432173164/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
11: デフォルトの名無しさん [sage] 2015/06/17(水) 02:45:22.84 ID:WySeJcTb >>10 リボンの編集→置換で(ワイルドカードを使用する)^13と^11を指定すればウィンドウからはできましたが、 この機能に該当するメソッドがどうにも探せないですね。 参考にされたコードはワードのものなんですけど、OUTLOOKで使うにはちょっと無理そうです。 http://mevius.5ch.net/test/read.cgi/tech/1432173164/11
12: デフォルトの名無しさん [] 2015/06/30(火) 10:29:12.58 ID:ewTLWEfL 初心者から始め、2年ほど1人でVBA業務をしていたのですが そろそろ引き継ぎ等も考え、コーディング規約のようなものを作成しようと考えています。 各プログラムで命名規則も違うため、統一したいのですが今ひとつ可読性の高い命名というのがわかりません。 修正前の変数宣言のコードを記載しますので、ぜひ添削していただけないでしょうか。 なお、グローバル変数宣言しているのは当時、この方法が一番良いと思ったためです。 http://mevius.5ch.net/test/read.cgi/tech/1432173164/12
13: デフォルトの名無しさん [] 2015/06/30(火) 10:41:30.91 ID:ewTLWEfL 'ワークシート名宣言 Public Const Input_WS As String = "入力" '注文書テン プレートのワークシート名 Public Const Setting_WS As String = "設定" '注文書設定 のワークシート名 'ワークシート[入力]のセル番地宣言 Public Const Order_No As String = "AO1" '注文書番号 Public Const Order_Title As String = "Q2" '注文書種類 Public Const Deta_Issue As String = "S5" '発行日 Public Const Company_Name As String = "B8" '外注業者名 Public Const Company_Code As String = "U8" '取引先 コード Public Const Cash_Ratio As String = "AE14" '現金割合 Public Const Bill_Sight As String = "AO14" '手形サイト Public Const Con_Name As String = "F14" '工事名称 Public Const Con_Add As String = "F16" '工事名称 Public Const Con_Start As String = "F17" '工期始 Public Const Con_End As String = "O17" '工期終 Public Const Con_Payment As String = "F19" '工事金額 Public Const Amount_Tax As String = "L19" '税額 Public Const Amount_Total As String = "Q19" '合計金額 'ワークシート[設定]のセル番地宣言 Public Const Set_ConName As String = "B4" '工事名称 Public Const Set_ConNo As String = "B5" '工事コード Public Const Set_Start As String = "B7" '工期始 Public Const Set_End As String = "B8" '工期終 Public Const Set_Tax1 As String = "B10" '基本税率 Public Const Set_Tax2 As String = "B11" '変動税率 http://mevius.5ch.net/test/read.cgi/tech/1432173164/13
14: デフォルトの名無しさん [sage] 2015/06/30(火) 16:19:51.35 ID:GcuTOY9X >>13 工事をConと省略せずにconstruction_xxxと書くべきだと思うが、それよりもワークシートのセル番地を固定文字列で定義するのはまずいだろう。 一行ずらしましょう、とかするときどうするの?不自由この上ない。 http://mevius.5ch.net/test/read.cgi/tech/1432173164/14
15: デフォルトの名無しさん [sage] 2015/06/30(火) 16:46:45.95 ID:ybpzKx4V Detaが気になる・・・ http://mevius.5ch.net/test/read.cgi/tech/1432173164/15
16: デフォルトの名無しさん [] 2015/06/30(火) 18:04:04.25 ID:RGb3IB+F >>14 セル番地の固定文字列については改めて見るとすごくおかしいと思いました。 修正したいですが、皆さんワークシートやセル番地の定数はどのようにされているのでしょうか。 検索はするものの、なかなか見つけられず困っています。 >>15 気づきませんでした、すみませんありがとうございます。 http://mevius.5ch.net/test/read.cgi/tech/1432173164/16
17: デフォルトの名無しさん [sage] 2015/06/30(火) 19:44:23.68 ID:4fqzjiG2 セル番地はセルに名前を付ける 列番号はenumにまとめる シート名はconst 基本適当 http://mevius.5ch.net/test/read.cgi/tech/1432173164/17
18: デフォルトの名無しさん [] 2015/07/01(水) 22:28:04.95 ID:DXkWToqb 一日20項目ほどの数値データが入力されている月報の表を 月末にデータを全て消去して、同じWS上で次月の日付、曜日 の書き込まれた新しいフォームに更新したいのですが、 マクロで実現可能でしょうか? http://mevius.5ch.net/test/read.cgi/tech/1432173164/18
19: デフォルトの名無しさん [sage] 2015/07/01(水) 22:31:39.26 ID:jU+pvdKi 手動でやれることはたいがいマクロ化できる。 http://mevius.5ch.net/test/read.cgi/tech/1432173164/19
20: デフォルトの名無しさん [] 2015/07/01(水) 23:04:39.40 ID:DXkWToqb やってみたけど30日までの月や31までの月などがあって 上手く行かないのです。 http://mevius.5ch.net/test/read.cgi/tech/1432173164/20
21: デフォルトの名無しさん [] 2015/07/01(水) 23:05:37.19 ID:DXkWToqb どこかにサンプルコードでも落ちてないでしょうか? http://mevius.5ch.net/test/read.cgi/tech/1432173164/21
22: デフォルトの名無しさん [sage] 2015/07/02(木) 02:39:59.24 ID:9jOibGQm 翌日の日付が「1」だったらコードを実行するようにしたらいいんでない? http://mevius.5ch.net/test/read.cgi/tech/1432173164/22
23: デフォルトの名無しさん [sage] 2015/07/02(木) 11:43:59.86 ID:mBr3NkR3 >>18 年と月が指定されればその月の日数は求められるよ (月だけだとうるう年があるから2月に対応出来ない) 具体的やり方は複数あるだろうけど 例えばDateserial関数で指定月の翌月のゼロ日(ツイタチの前日)を求めれば出る 2015年7月の日数を求めたらこんな感じ Sub Test() Dim 年指定 As Long Dim 月指定 As Long Dim 日数 As Long 年指定 = 2015 月指定 = 7 日数 = Day(DateSerial(年指定, 月指定 + 1, 0)) End Sub http://mevius.5ch.net/test/read.cgi/tech/1432173164/23
24: デフォルトの名無しさん [sage] 2015/07/02(木) 13:00:55.32 ID:ww5oQ+GG >>18 フォーム更新のタイミングは? ファイルを開いたときに自動で更新するの? http://mevius.5ch.net/test/read.cgi/tech/1432173164/24
25: デフォルトの名無しさん [] 2015/07/02(木) 14:46:01.74 ID:AbwDTtrn 年月は、ボックスからプルダウンリストで指定 するだけです。ただ、指定年月の1〜月末までの日付、曜日を月報の1.2行目に縦に列記するコードが出来ないのです。 http://mevius.5ch.net/test/read.cgi/tech/1432173164/25
26: デフォルトの名無しさん [sage] 2015/07/02(木) 16:13:54.40 ID:mBr3NkR3 >>25 こんなんでどう? 対象のワークシートと年、月、を引数に指定してコールすれば 対象のシートのA列に日付、B列に曜日を書き込むよ 年と月は省略可能で、省略すると当日の年・月を指定したとみなして処理を実行するよ Sub test(sh As Worksheet, Optional ByVal yr As Long = 0, Optional ByVal mo As Long = 0) Dim i As Long Dim cnt As Long If yr = 0 Or mo = 0 Then yr = Year(Date) mo = Month(Date) End If cnt = Day(DateSerial(yr, mo + 1, 0)) With sh .Cells.ClearContents .Columns(2).NumberFormatLocal = "aaa" For i = 1 To cnt .Cells(i, 1) = i .Cells(i, 2) = Weekday(DateSerial(yr, mo, i)) Next i End With End Sub http://mevius.5ch.net/test/read.cgi/tech/1432173164/26
27: デフォルトの名無しさん [] 2015/07/02(木) 19:18:37.45 ID:zxCnKqA7 何とかできそうです。ありがとうございました。 http://mevius.5ch.net/test/read.cgi/tech/1432173164/27
28: デフォルトの名無しさん [sage] 2015/07/02(木) 20:29:21.19 ID:Mdba4OI7 >>14 なんやわからん英語で書かれている方がよっぽど分かりずらいので、 あくまでもEXCELマクロで使用するスクリプトなのでコメントに書いている そのコードを外人に見せるなら英語が望ましいけど、 漢字をそのまま使えばいいかと。 工事名称等は重複してるので、設定_工事名称とかになるんでしょうかねー。 セル番地の固定値を変数で持っているのが引っかかっているみたいですけど、 メンテするときはコードのメンテも込みになるでしょうから、 変数に代入して整理してるし良いのでは? というか、そういう風にルールを敷けばいいとおもうの。 http://mevius.5ch.net/test/read.cgi/tech/1432173164/28
29: デフォルトの名無しさん [sage] 2015/07/03(金) 08:49:41.34 ID:IELcwsmr >>28 全体を一行下にずらす、とかするとき数十個ある変数を個々にメンテするの? 工事_A = "AO1" → 工事_A = "AO2" 工事_B = "AP1" → 工事_B = "AP2" ・・・ http://mevius.5ch.net/test/read.cgi/tech/1432173164/29
30: デフォルトの名無しさん [sage] 2015/07/03(金) 14:52:04.92 ID:aFtg1Cyl >>29 それでいいと思うよ どうやろうとしてるのか知らんけど、この手の奴は分かりやすいのが一番だと思う http://mevius.5ch.net/test/read.cgi/tech/1432173164/30
31: デフォルトの名無しさん [sage] 2015/07/03(金) 16:20:33.62 ID:L435uo00 分りやすいっていうか、直接的だから理解はしやすいけど 修正が面倒で間違いも起きやすいね レイアウト自体の変更ではなく、全体を一気に動かすなら 最初の一要素だけ絶対アドレスで指定して あとはそこからの相対参照(要するにオフセット)にしておくというのもひとつの手だと思う それなら1個いじれば全部まとめて直せる http://mevius.5ch.net/test/read.cgi/tech/1432173164/31
32: デフォルトの名無しさん [sage] 2015/07/06(月) 05:20:54.03 ID:UMBaWGrv >>31 数十行にわたるコードのメンテぐらいで不満がある程度なら、 プログラム書くのは向いていないので、長いコードは書かないほうがいいと思う。 あと、ただ一つ変えれば全部まとめて直せるコードでも、 そのコードを知らない他人から見れば、結局全部見ることになると思うよ。 本当にそれでいいのかという部分も含めてテストすることになるから。 で、結局のところ別にどっちでもいいとなる。 http://mevius.5ch.net/test/read.cgi/tech/1432173164/32
33: デフォルトの名無しさん [sage] 2015/07/06(月) 08:42:45.53 ID:fhp0P+BJ >>31 項目増えて、途中に一行追加されたら似たようなことになるでしょ http://mevius.5ch.net/test/read.cgi/tech/1432173164/33
34: デフォルトの名無しさん [sage] 2015/07/06(月) 13:55:10.74 ID:henE3y4I 向き不向きに関する思い込みだな http://mevius.5ch.net/test/read.cgi/tech/1432173164/34
35: デフォルトの名無しさん [sage] 2015/07/06(月) 17:53:09.90 ID:J6N5PkHq >>32 数十行だろうと数万行だろうと ひとつの変更で複数の変更箇所が出てくる構造自体のほうが問題だと思うよ >そのコードを知らない他人から見れば、結局全部見ることになる 云々はベタに一個ずつ指定していても同じ確認コストを要するわけで 適切なコメントをつけとくなりなんなりで対応しないとしょうがないんじゃないの? >>33 いや、だから >レイアウト自体の変更ではなく、全体を一気に動かすなら という前提条件をつけた上での話をしてるんだけど http://mevius.5ch.net/test/read.cgi/tech/1432173164/35
36: デフォルトの名無しさん [sage] 2015/07/06(月) 18:38:29.56 ID:fhp0P+BJ >>35 > という前提条件をつけた上での話をしてるんだけど そう言うケースがどれだけあるんだ? って話でしょ 滅多にないケースに対応するために分かりにくい方法をとる必要はないよね http://mevius.5ch.net/test/read.cgi/tech/1432173164/36
37: デフォルトの名無しさん [sage] 2015/07/06(月) 21:37:27.39 ID:J6N5PkHq >>36 表の頭にあとから表題を付け加えるとかで 全体を動かすケースってのはそれなりにあると思うよ、 仕様変更で項目順の変更とか途中に項目追加とかのほうが多いだろうけど。 それに、全体をずらすってのは>>29の発案であって俺が言い出した話じゃないんで 俺はあくまで他人から与えられた前提条件で考えただけの話 http://mevius.5ch.net/test/read.cgi/tech/1432173164/37
38: デフォルトの名無しさん [sage] 2015/07/06(月) 22:43:31.22 ID:fhp0P+BJ >>37 > 仕様変更で項目順の変更とか途中に項目追加とかのほうが多いだろうけど。 普通はそうでしょ? > 俺はあくまで他人から与えられた前提条件で考えただけの話 あまりない条件だけ考えることになんか意味があるのか? http://mevius.5ch.net/test/read.cgi/tech/1432173164/38
39: デフォルトの名無しさん [sage] 2015/07/06(月) 23:03:55.23 ID:J6N5PkHq >>38 そっちのが多いとは言ったが、全体を動かすのもそれなりにあるって言ってるじゃん 滅多にないとかありえないとかいうほどのレアケースではないよ http://mevius.5ch.net/test/read.cgi/tech/1432173164/39
40: デフォルトの名無しさん [sage] 2015/07/06(月) 23:42:36.40 ID:QbnSMTRw >>39 > ありえないとかいう 誰もそんなことは言ってないだろ? お前さんも認めてるように > 仕様変更で項目順の変更とか途中に項目追加とかのほうが多い なら、そっちの対応を優先して設計した方がいいんじゃね? って話 http://mevius.5ch.net/test/read.cgi/tech/1432173164/40
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 962 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.017s