Excel VBA 質問スレ Part73

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 4668-xJJl)
垢版 |
2021/09/13(月) 07:29:59.47ID:GNx0xRRz0
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑同じ内容を2行貼り付けるナリ

ExcelのVBAに関する質問スレナリ
コード書き込みや作成依頼もOKナリ

※前スレ
Excel VBA 質問スレ Part70
https://mevius.5ch.net/test/read.cgi/tech/1616072923/
Excel VBA 質問スレ Part71
https://mevius.5ch.net/test/read.cgi/tech/1621914481/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
577デフォルトの名無しさん (アウアウキー Sab1-jU0I)
垢版 |
2021/11/05(金) 10:08:06.00ID:X0+Pa++fa
現場で変更するのはもとファイルが使いにくいからじゃないのか
2021/11/05(金) 10:16:00.53ID:ccfSCjSv0
確かにチェックつけるだけなのになぜ改変されるのか謎
2021/11/05(金) 10:22:26.73ID:UB8UVAT80
よく見たら提出って言ってるな。
フォーマットに整形させたファイルをマクロつかって登録させる仕組みじゃないのか。

もしかしてVBAの話ですらない?
2021/11/05(金) 10:25:07.86ID:7p6i3Z7i0
>>553
step 1 が気持ち悪い
てか、まずこういうの作って実験してみればいいじゃん
挙動がわからなければ、めんどくさがらず小さなプログラム書いてどう動くか実験
そういうことやる癖つけないと厳しいよ

Option Explicit

Sub TestSub()
Dim i As Integer
Dim j As Integer

Dim lastRow As Integer
lastRow = 1

For i = 1 To 10
For j = 2 To lastRow
Debug.Print "aa"
Next j
Next i
End Sub

まぁ、普通に考えれば、どう見てもiRastrowが1ではなく別のもっと大きな値をとっている可能性が果てしなくでかいわ
581デフォルトの名無しさん (スフッ Sdb2-slLX)
垢版 |
2021/11/05(金) 10:52:29.16ID:KTVj1H8Jd
デバッグで値確認していけばいいだけの話
582デフォルトの名無しさん (ラクッペペ MM96-sHbI)
垢版 |
2021/11/05(金) 12:18:28.52ID:gSvscUzNM
確認した結果、言語に致命的な問題があったという研究報告だろ
異論があるなら論文で提出しろや
583デフォルトの名無しさん (ワッチョイ b145-9ETr)
垢版 |
2021/11/05(金) 12:19:13.47ID:WyPtUDby0
文系プログラマにデバッガ使えは酷
584デフォルトの名無しさん (ワッチョイ b145-9ETr)
垢版 |
2021/11/05(金) 12:24:56.88ID:WyPtUDby0
研究報告は5chで
2021/11/05(金) 13:48:49.56ID:5gsLg44lM
>>576
毎回一人ずつ文句を言うのもかなり面倒な作業だと思うがな
俺なら同じ時間と手間を掛けるならパソコンに向かってコーディングしてた方がいいわ
586デフォルトの名無しさん (アウアウキー Sab1-jU0I)
垢版 |
2021/11/05(金) 17:15:34.16ID:T1OvPNHaa
作業ルールの変更は職場長の許可もらってやれよ
勝手に変なシート作ってフォーマット変えるなとか言われてもね
2021/11/06(土) 09:43:33.18ID:GqSttEtV0
年末調整面倒くさい
何故に毎回フォーマットを変えるのか
いや、分かるよ、控除や税金計算が変わってるんだから仕方ないけどさ、
国には毎年キチンと高い税金納めているんだからEXCELで自動計算してくれて、それ印刷して提出すればいいくらいのもの作ってくれないのかなぁ
2021/11/06(土) 09:54:07.39ID:tOYszMkkM
>>587
いや、むしろ自治体から「年末調整やっておいたから内容確認して」
と連絡メールが来るくらいのことをしてくれていいと思う
2021/11/06(土) 11:02:12.05ID:I7EssLBv0
>>587
うちの会社はイントラで内容確認して問題なければ「申請する」ボタンをクリックするだけだよ
俺は嫁がパートに出てるからその年収入力が必要だけど昔に比べたらめっちゃ楽になった
2021/11/06(土) 11:40:54.21ID:FYF0HF0H0
ちょっと思いて調べたらユーザー定義関数でもスピルできるんだな
今度実験してみるか
2021/11/06(土) 13:59:19.77ID:hCRiIaw50
>>587
高額納税者なら会計士にたのめばええ
控除とか支給金とか、毎年新しい制度まできちんとチェックして、うちで使えるやつを教えてくれる
家族構成まで考慮して節税のアドバイスもくれるし、確実に手数料以上のメリットがある
2021/11/06(土) 19:50:35.22ID:uGoYMeGG0
>>589
扶養に入っていていてもメルカリ等で得た利益を合計すると扶養から外れることがあるからな
2021/11/07(日) 03:10:59.12ID:4qrovYD50
税理士のことを会計士って呼ぶやつはかなりの高齢だって聴いたことがあるわ
2021/11/07(日) 06:37:50.24ID:so93UNIl0
んな奴おらん
会計士は公認会計士の事
595デフォルトの名無しさん (ワッチョイ 9eda-jU0I)
垢版 |
2021/11/07(日) 22:57:31.69ID:XNg8pwBQ0
オランダはオラんだ
2021/11/07(日) 23:38:18.06ID:V/DqJR+40
シンガポールの芯がポール
2021/11/08(月) 08:49:01.66ID:3W+jmNKxM
タイ米でタイ飯を炊く
598デフォルトの名無しさん (アウアウキー Sab1-4u4U)
垢版 |
2021/11/08(月) 12:53:20.11ID:TKWun27Sa
そびえ立つソビエト
2021/11/08(月) 13:31:29.26ID:/zBQ/QG70
VBAの構造体で
Type Book
  title As String
  author As String
  price As Long
End Type

桁数を予め指定しておくことてできないんですか?
こんなような感じで
Type Book
  title As String (10)
  author As String (10)
  price As Long (5)
End Type
2021/11/08(月) 14:09:40.47ID:syf9kZiP0
StringならString * 10 とかでできる。
Longは大きさ決まってるから指定できないはず。
2021/11/08(月) 16:24:53.09ID:UsmHmtDwM
>>587
前半は分かるけど、なんでそこでエクセルが出てくるんだよ
2021/11/08(月) 20:42:50.40ID:66GUt1hW0
>>599
クラスつくってプロパティの代入時にチェックいれればいいんじゃね
2021/11/08(月) 20:52:16.35ID:bylJ/Cyl0
>>601
数式だけでちゃちゃっと出来そうじゃん
そんなんで本格的なWebサイト作ってアクティブレポートとかではくより
このEXCELファイルダウンロードして必要なところに入力してねで終わらせた方が安上がりだし
むしろここ、EXCELVBAのスレだからEXCELにすらかすってないこと書くのってなんか気が引けるじゃん
2021/11/09(火) 09:52:46.91ID:cbbOFy6t0
というか、最悪Webフォームやらにして、番号言えば参照してもらえるって感じでいいとおもうけどね
印刷とかしてもってくのめんどいし
本人確認で行くのはしゃあないとして

ま、スレ違い
2021/11/09(火) 15:30:51.99ID:SzXGWqe30
>>600
TypeてVBAでできるけど、VBScriptだとできないんだな。
やりたいことは全銀フォーマットをCSVにしたかったんだけど、別のやり方でやったわ。
2021/11/10(水) 22:53:12.24ID:lHaNkZWD0
>>605
それ普通じゃん
2021/11/10(水) 23:10:54.65ID:n4nrpIYq0
>>605
正規表現で一括置換すればいいだけだな。
2021/11/11(木) 22:25:28.82ID:4U2+Csw00
問題を解決するやり方が複数ある場合は作る人のセンスがでる
速度重視なのか汎用性やメンテナンス、あるいはただ動けばいいとか
2021/11/12(金) 07:19:28.68ID:7noZI+XHd
単に技術・経験の差が大きい
2021/11/12(金) 16:46:18.75ID:xE6WDQNQ0
VBAっていうかエクセルの話題かもしれないけど、
ユーザーに入力させたテーブルがあってそれを校正するとき、
「間違っている部分」と「そこの入力形式の説明と記入例」をどうやって表示したら分かりやすいと思う?

イメージとしては「入力形式を確認する」ボタンをクリックすると
間違い場所が何らかの方法で説明されて、
ユーザーがそれを見ながら修正する感じです。
2021/11/12(金) 17:12:52.04ID:qAk4Oa1rM
>>610
普通に入力規則使えば?
変なオレオレ方式作られるより慣れてて分かりやすいでしょ
2021/11/12(金) 18:11:45.18ID:xE6WDQNQ0
>>611
複雑な形式(5〜10文字の英数+アンダースコア+5文字の英数の繰り返し用のような)も多数あるのですが、可能でしょうか。
GoogleスプレッドシートならSplit関数があるので捏ね繰り回せばパース出来なくはないですが・・・

ユーザー定義関数で入力規則が設定できるのかとも思ったのですが、
「指定した範囲の名前は見つかりません」と出てしまい、
そもそも関数として認識されませんでした。
2021/11/12(金) 18:36:55.58ID:grozR+8R0
以下のようなマクロが組みたいです。

ファイル(以下A)が保存されているフォルダ内を検索して、特定の名前が含まれる別のエクセルファイル(以下B)を開いて、Bの各シートをシート名を指定した名前に書き換えつつAの指定の位置にシートを追加する。開いたBは閉じる。
614デフォルトの名無しさん (ワッチョイ 158e-OVKX)
垢版 |
2021/11/12(金) 18:40:57.40ID:KziMfQdv0
>>613
そうか頑張れ
ここはお前の日記帳ではない
2021/11/12(金) 19:09:57.81ID:P++os05D0
ルビー先生の自演ですね
2021/11/12(金) 19:19:22.94ID:a3j0d+bF0
>>610
> 「間違っている部分」
そこにフォーカス当てるとか色を付けるとか

> 「そこの入力形式の説明と記入例」
メッセージ表示ればいいけど修整箇所がたくさんあるとウザくなるからそういうことが予想されるケースでは俺ならエラーセルに色付けしてそこが選択されたらステータスバーに表示するとかするかな
2021/11/12(金) 19:56:06.94ID:1Dl5hXGo0
>>612
正規表現だろうな
2021/11/12(金) 19:59:42.26ID:USYnrtRo0
正規表現って言うと卑猥なことを言ってるような気がして口では説明しにくい
2021/11/12(金) 20:24:37.20ID:Ncd0depJM
可愛い女子後輩が「せいきひょうげん教えて下さい!」なんて言ってきたらそれだけで射精してしまうよな
2021/11/12(金) 21:37:44.97ID:Bm/JCeux0
え?何の表現?
2021/11/12(金) 22:29:48.65ID:a3j0d+bF0
ここでぬいたでーたをこのせいきひょうげんでちゅうしゅつしてそこへそうにゅうしといて…
2021/11/13(土) 00:19:30.49ID:IngrJLwZ0
>>616
ステータスバーに書かれていると気づいてもらえるかどうか・・・

>>617
正規表現で入力規則に設定可能か、
自分ググってみたのですが見つかりませんでした・・・
やり方を教えてください。
2021/11/13(土) 04:21:00.05ID:9Z7Y7eKB0
>>610
色んなやり方があると思うけど
例えば小さなテーブルならOK、NGやなにがどう間違っているかの列を数式で出る欄を設けておいて
全ての行がOKならOK、そうで無ければNGと表示するセルをひとつ作って
それがNGであればなんかのボタン押したときに「入力値に誤りが有ります」的なメッセージを出す方法を使ってるところのが分かりやすかったかな。

ただこの方式だとユーザー定義関数使うとマクロ無効にされてる状態では正しく反応しないのが難点だけど。
2021/11/13(土) 05:16:16.94ID:x1CN7sQN0
>>622
> ステータスバーに書かれていると気づいてもらえるかどうか・・・
セルのどこかに表示するとかいいと思うよ
そこら辺は好みでどうぞ
2021/11/13(土) 06:02:35.99ID:HLrAQBx/0
どこに書いてあっても絶対に読まない民が43%いるから(当社調べ)
覚悟しとけよ
2021/11/13(土) 15:19:02.92ID:ANEVI8Gn0
>>612
ExcelVBAのスレなので
VBA(WorkSheet_Changeイベントで起動)でチェックしたら?
2021/11/13(土) 17:00:36.35ID:HusEpJk10
>>613
クエリでフォルダ指定すると、ファイル名一覧を取得出来るから
キーワードで絞込む。
で、インデックス列と希望する書き換えファイル名の列作ってリストにしといて、
あとはVBAで、IF FOR構文とSaveAsあたり使えば
出来るんでね?
628デフォルトの名無しさん (ワッチョイ 158e-OVKX)
垢版 |
2021/11/13(土) 17:14:33.96ID:bgvplZUP0
>>627
ただの決意表明に何でコメントしてるの?
Ruby基地外の自演コメントですか?
2021/11/15(月) 11:13:54.86ID:wYO/ump40
お金が稼げるVBAを組みたいです!
630デフォルトの名無しさん (ラクッペペ MM4b-wt4Y)
垢版 |
2021/11/15(月) 11:56:57.23ID:xIS0g/4FM
ハロワ行け
2021/11/15(月) 19:07:44.02ID:UtsmVGsD0
>>629
ソーシャルワーカーだらけで単価激減
vbaで稼ぐのは諦めろ
632デフォルトの名無しさん (アウアウウー Saa9-3S+0)
垢版 |
2021/11/15(月) 20:28:22.57ID:UvM84Y/0a
将来の希望としての発言なら
まず稼げる力をつけてからそういう会社に就職したらいいんじゃね
あとYoutuberとかなら勝手にやればいい
2021/11/15(月) 21:07:01.94ID:nN/tXQswd
裸エプロンで胸を机に乗せた状態でプログラムする様子をYouTubeに上げれば稼げるかもしれんぞ
2021/11/15(月) 23:28:31.25ID:UtsmVGsD0
やったけど微妙だったわ
2021/11/15(月) 23:32:21.10ID:OfX77+Sf0
>>613
例えば、Ruby で、glob を使って、
拡張子がcsv で、ファイル名に13 を含む、ファイルのフルパスを求めると

# 絶対パスのディレクトリ名の後ろに、* を付けること!
# . で始まる、隠し directory, file を除く
glob_pattern = "C:/Users/Owner/Documents/*.csv"

filename_substr = "13"

p Dir.glob( glob_pattern )
.select { |full_path| File.file?( full_path ) } # ファイルのみを取り出す
.select { |full_path|
# ファイル名だけを取り出して、指定の語句を含む、ファイル名を含むものだけを抽出する
File.basename( full_path ).include?( filename_substr )
}

出力
[ "C:/Users/Owner/Documents/input113_2.csv",
"C:/Users/Owner/Documents/input13-3.csv" ]
2021/11/16(火) 03:08:02.41ID:FNimwzj70
>>634
これ思い出した
https://news.yahoo.co.jp/articles/c74cfb53262d1001291948766f2f5abceb2623b7
2021/11/16(火) 16:09:29.51ID:5D9mKY7bF
>>633
https://www.youtube.com/channel/UC9-eWyrUJfPJsRxtXTdx_Cg/videos
2021/11/17(水) 14:18:28.93ID:ziCKlq68a
標準モジュールで、シートAから文字列拾ってシートBに転記しようとしたら、
望まぬ形でBのWorksheet_Changeを踏んだのでCaseで分けて素通りさせたんですが、
どうにもBのValueが1004エラーで書き換わっていないのにWorksheet_Changeが発動しているらしく、
なんの変哲もない「Worksheets("B").Range("XX").Value = str」が実行されません。

F8で(Changeしてないのに)Worksheet_Changeの中身だけ進む事ができますが、それが終わると元の位置に戻って再びエラーになります。
どうしたらValueを拾って貰えるんでしょうか。
2021/11/17(水) 14:26:30.65ID:vBkg6J9AM
イベント無効化しろよ
2021/11/17(水) 17:56:35.51ID:3zD8SsO+a
>>639
たったの2行で万事解決
ありがとうございます
Public文字列をスイッチに四方八方から切替えまくってからのこのオチは恥し過ぎる
2021/11/18(木) 11:22:25.43ID:Q3OFtjIpM
>>638
何が起こってて何がしたいのかまるで意味不明なんだが、>>639が回答できた事に驚き
2021/11/18(木) 12:48:11.85ID:A7YSZCxr0
読解力って大事だよね
2021/11/19(金) 07:29:58.87ID:HahswZdrd
vba歴15年だがイベント無効化今知ったわ
2021/11/19(金) 07:42:51.24ID:tUazBZuEM
それ絶対ウソだわ
2021/11/19(金) 14:43:03.48ID:0h6/N7AxM
そういうのって必要になった時に調べるもんだし
今まで一度も使わなかった機能なんて色々あるだろ
2021/11/19(金) 21:00:40.42ID:o1Oq/T8x0
しかしだな
15年もいじってりゃエナブルイベントのせいで無限ループになることくらいあるんじゃないの
2021/11/20(土) 15:14:52.68ID:jiw0H+C10
失われた15年
2021/11/20(土) 20:08:41.79ID:TxFL/ZXr0
2013でSharePointに接続する方法ない?
2019ならADOで出来るんだけど
649デフォルトの名無しさん (ワッチョイ 1b2f-IS5D)
垢版 |
2021/11/20(土) 21:06:56.40ID:4VXr5Xxs0
2021ならAHOで出来るよ
2021/11/20(土) 23:15:05.65ID:MzgsRNiS0
作る前に様式はこれでいいよねって事前に確認したのに、作ったあとに
やっぱりああでもないこうでもないと注文つける
簡単なコードすらまともに書けないゴミの後出し地獄にムカついてくる
じゃあてめえが作れと
651デフォルトの名無しさん (ワッチョイ ef8e-1fs8)
垢版 |
2021/11/21(日) 00:12:13.26ID:VeOo+GZo0
たかがVBAを少し書けるだけで他人をゴミ呼ばわりする馬鹿
こいつみたいな勘違いの思い上がり馬鹿はよく見かける
2021/11/21(日) 00:20:55.86ID:9y2yNJe30
わざわざ作業やり直したくないから様式を事前に確認したのに後出しで人の作業増やすやつをゴミ呼ばわりして何が悪いのかな
お前も後出しで人の作業量増やしそう

自分でやるなら好きなだけ後出ししていいけどな。できないでしょ
653デフォルトの名無しさん (ワッチョイ ef8e-1fs8)
垢版 |
2021/11/21(日) 01:55:02.67ID:VeOo+GZo0
相手の要求を理解して指摘される前に用意しとくものだろ
馬鹿は言われたことしかできないから馬鹿だっての
2021/11/21(日) 02:07:24.62ID:9y2yNJe30
提示した仕様に対してOKが出てるのに
勝手に仕様追加しとけって?キチガイですかね
655デフォルトの名無しさん (ワッチョイ ef8e-1fs8)
垢版 |
2021/11/21(日) 02:12:33.23ID:VeOo+GZo0
相手のレベルに合わせて打ち合わせできないから馬鹿だっての
2021/11/21(日) 02:16:27.01ID:9y2yNJe30
様式見せてるのに相手のレベルもクソもないんだがねキチガイくん
657デフォルトの名無しさん (ワッチョイ ef8e-1fs8)
垢版 |
2021/11/21(日) 02:17:32.02ID:VeOo+GZo0
馬鹿は相手が理解しているかどうかすらわからないから馬鹿だっての
2021/11/21(日) 02:19:43.87ID:9y2yNJe30
相手は様式を理解した上で後出しの思いつきで仕様変更要求してきたんだよ
馬鹿なお前にはこんな簡単な日本語すら理解できないんだろうけど
2021/11/21(日) 04:43:02.55ID:YN582lotM
議事録なり議事メモなりで決定会議や打ち合わせの記録を残しておかないと後で後悔する
2021/11/21(日) 05:13:42.45ID:V2WgyX4h0
議事録だろうが録音だろうが無駄
レベルの低いやつってのは、簡単に前言を撤回して主張を変えてくる
2021/11/21(日) 06:09:13.16ID:CsAuHtPC0
つまり契約概念を理解しない客なわけだ。そんな客は契約は契約ですかと突っぱねて二度と相手にしないことだ。
2021/11/21(日) 06:13:44.85ID:8rSjcXEU0
VBAでなくてもクライアントからの急な仕様変更なんて日常茶飯事だから諦めろん
ある程度の仕様変更なら少ない手間で対応できる作りにするのも腕の見せ所だぞ
まぁ言うてその仕様にすんなら全部1から作り直しやんけって仕様変更もなくはないのがツラいところ
2021/11/21(日) 08:27:37.33ID:V2WgyX4h0
だからメンテナンス性とかモジュール化とかクラスが大切になってくるんだよ
経験を積んで仕様書に書かれてない部分も適切に作り込んでおいて、仕様変更のコストを下げるのも腕の見せ所
もちろん、表向きは大変だと言って渋って見せたり高額なメンテ費用を請求する駆け引きも必要
2021/11/21(日) 08:36:08.55ID:4M98L2BP0
勝手にやってやると調子に乗るだろ
665デフォルトの名無しさん (アウアウウー Sa3b-Z5oZ)
垢版 |
2021/11/21(日) 10:03:03.00ID:zwWMSsz4a
仕様変更っていっも動作確認あわせて1時間もかからんだろ
ここで愚痴る前にさっさと直せよ
666デフォルトの名無しさん (ワッチョイ ef8e-1fs8)
垢版 |
2021/11/21(日) 12:48:58.97ID:VeOo+GZo0
馬鹿だから修正に手間が掛かるようなプログラムしか作れないのだろ
2021/11/21(日) 14:30:08.25ID:CsAuHtPC0
仕様確認を反故にする ユーザーに怒っている人をディスってる奴らが数人いるけど、こいつらは他人をディスってストレスを発散する病んだ人たちなんだろうな。
2021/11/21(日) 15:03:48.31ID:j1X7Mg5t0
プログラム的なものをやってると後出し仕様変更おしさんにはほぼ100%遭遇するからな
2021/11/21(日) 17:22:27.75ID:lG7wwdbAd
>>665
テストやリリースまでのドキュメント作成で実際はその何倍もかかるよね
2021/11/21(日) 17:48:21.28ID:RHabNs0q0
列挙型使ってればデータ収集くらいなら大体は対応できる
2021/11/21(日) 17:56:13.83ID:Cim/yDW60
後出して仕様変更されても、その分の納期と金額を保証してくれるならまあ許せる
そういうやつらは大概は、元の金額のままで同じ納期でやれっていうからな
672デフォルトの名無しさん (ワッチョイ c6da-Z5oZ)
垢版 |
2021/11/21(日) 18:04:49.83ID:rJQke0fG0
>>669
それでもここで愚痴るほど暇な訳だが
2021/11/21(日) 19:36:02.92ID:rJQke0fG0
>>671
個人契約で請け負っているならそういう交渉もあるだろうね
自社開発とかだと上司にそれ言うか?
674デフォルトの名無しさん (ワッチョイ ef8e-1fs8)
垢版 |
2021/11/21(日) 19:50:30.82ID:VeOo+GZo0
エンドユーザーに仕様なんて伝えても理解できないことも織り込めない素人に毛が生えただけのVBAプログラマーがこぼしているだけだからな
2021/11/21(日) 22:53:28.70ID:CsAuHtPC0
>>674
こいつはきっと趣味のプログラマーだな。
676デフォルトの名無しさん (ワッチョイ ef8e-1fs8)
垢版 |
2021/11/21(日) 23:12:50.46ID:VeOo+GZo0
悔しかったか?
どんな仕事でも言われたこと(それも自分が理解できる範囲だけ)しかできない無能に限って、少しプログラムできると天狗になって自分が偉いと思い込む
■ このスレッドは過去ログ倉庫に格納されています