Excel VBA 質問スレ Part68

レス数が900を超えています。1000を超えると表示できなくなるよ。
1デフォルトの名無しさん (ワッチョイ dbda-8BP0)
垢版 |
2020/08/30(日) 11:55:27.33ID:Oy/VxFsh0
!extend:checked:vvvvv:1000:512
↑同じ内容を2行貼り付ける

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

※前スレ
Excel VBA 質問スレ Part67
https://mevius.5ch.net/test/read.cgi/tech/1593104489/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2020/11/15(日) 17:00:18.68ID:11DSlt/B0
無いと思うな
最悪、CreateObject("WScript.Shell")で逃げられるし
2020/11/16(月) 14:27:06.48ID:yPbGtyDu0
ウインドウ固定をスクロールに応じて動的に変えるにはどうすればいいですか?

例えば、最初は2018年の列が固定されていて、2019年の列までスクロールしたら、2018年の固定を解除して2019年の列を固定するように変えたいです。
2020/11/18(水) 17:51:40.71ID:kO5sqIUGM
>>773
残業代欲しくてわざとチンタラ仕事したり自分にしかわからないようにするのをVBAでどーにかするのは無理だわな。
2020/11/20(金) 19:59:25.75ID:eS+rN1Snr
shapes.count、chartobjects.countで数えても引っ掛からないグラフってどうしたら操作できますか?
そのグラフは隣シートを参照して自動的にできるものっぽいんですけど
2020/11/20(金) 20:06:15.76ID:4NTNOb8s0
リストボックスの検索結果をダブルクリックすると該当セルを選択するようなものを実現したいのですが

実行時エラー 13
型が一致しません

とでます
該当箇所は
.Range(.Cells(ListBox1.List(ListBox1.ListIndex, 0) + 1, 1), .Cells(ListBox1.List(ListBox1.ListIndex, 0) + 1, 13)).Select

です

恐らくネットからコピペして来たものなのでセルの選択が間違っているのかと思うのですが、このコードの意味がわかりません…
どう修正すればいいでしょうか
またどこがなんの意味を表しているのか教えてください

全文 https://writening.net/page?C2Jumd
2020/11/20(金) 20:13:05.23ID:4NTNOb8s0
全文 https://writening.net/page?2uBnnv
上げ直しました
2020/11/20(金) 21:26:13.24ID:u+DVE/AE0
なぜ中途半端にあげるかね?
いちいちコマンドボタンやらテキストボックスやらデータなんて
作ってられるかっちゅうの
2020/11/20(金) 21:38:29.90ID:YhokOqrJM
だっちゅーの!
2020/11/20(金) 22:41:32.48ID:D5mBkKKe0
いつもの人だからなぁ
2020/11/21(土) 02:17:04.68ID:Kfg2B/Kg0
一々ソース見てないけど
どうせ標準モジュールでちゃんとどのブック、どのシートと指定していないと決めつけていい?
2020/11/21(土) 02:48:01.11ID:sGgCeBQZ0
>>809
貼り付けミスしなんじゃないかな
2020/11/21(土) 06:39:44.77ID:Q7uFQ1A40
.Range(.Cells(略),.Cells(略))

Range(.Cells(略),.Cells(略))
2020/11/21(土) 13:47:07.56ID:NgQ98i5wM
Excel VBAでも証券会社(e立花証券)のAPIを操作できるのでしょうか?
ExcelのVBA以外やったことがなくpytonなどからAPIを動かしてる動画などはよく見かけるんですが
2020/11/21(土) 15:32:34.25ID:3xACDtrT0
またいつもの人か
2020/11/21(土) 18:28:17.03ID:P16HPZ2I0
JSONって書いてあるから出来るんじゃないかと思ってググったら、
トレードステーションスレとマルチしてるのが見つかったわwwww
2020/11/22(日) 02:36:45.00ID:xXy7jV1TM
人に聞きまくるだけのクズ
2020/11/24(火) 19:01:29.52ID:IcwWHa740
クズは悪意のあるマクロとか平気で作るからな
2020/11/29(日) 03:39:08.87ID:zPhy879P0
ExcelでADOを使ってcsvを取り込む前に、

@csvの1行目を削除

Acsvの特定の列の1行目(@の前は2行目)の文字を修正

これを自動化するにはどうしたらいいですか?

業務システムから出力されたcsvをExcelに取り込む作業があるのだけど、
1行目に邪魔な出力日時が出てきてこれを消さないとADO+SQLのselect文で2行目のフィールド名を使えません
あとフィールド名に一部重複があるので、
例えば「日付」→「日付2」に修正した上で取り込みたいです
2020/11/29(日) 06:51:19.70ID:FO1CPqk3M
データとして読み込む前に、一行目棄てる、フィールド名変える処理したテンポラリファイルを作る。
2020/11/29(日) 09:01:56.95ID:Kj8zNz7J0
ああ、俺もそういうカスみたいなCSVに当たったことあるわ。
何のためのCSVだボケって言いたくなるような。

最初に1行だけテキスト読み込みして日付を調べておいて、

SELECT [出力日:2020/11/29] AS 商品コード
      F2 AS 商品名
      F3 AS 単価
      F4 AS 数量
WHERE 商品コード <> '商品コード'

とか無理矢理やるわwww
2020/11/29(日) 09:12:18.87ID:sYtQed9+0
フィールド名に重複とかどんな出力したんや。。Excelからくらいだろそんなの
2020/11/29(日) 09:20:35.18ID:Kj8zNz7J0
CMやってるような有名なシステムでも、そういうアホな出力あるよ
あとカンマ入れるとそのまま出てきて1列ずれるとか
2020/11/29(日) 09:47:04.02ID:GxGIo6I2d
アホかねえ。
別にそんなのどうとでもなるから不満にもならんな。
2020/11/29(日) 10:21:13.40ID:cY0oCL3I0
>>823
できました!
csvの取り込み方を工夫するのではなく、
tmpシートを新たに用意してそこに読み込ませて加工、
今度は今までのコードの接続先をcsvではなくtmpシートに変えてなんとかなりました

>>824
作った業者がアホなのか依頼した会社がアホなのかわかりませんが、
例えば商品コード的なものも正式表記と略号表記があって、
どちらも同じ「商品コード」というフィールド名になってたりします
2020/11/29(日) 19:32:45.82ID:0shL7X0+0
前々スレくらいで乱数発生教えてくれた人
今でも本当にありがとうと感謝してる
仕事で役立ちすぎて凄いわ
ある範囲を元に乱数発生させるがその数値は変化をさせないジレンマのあるようななるほどと思わせる構文ですね
と言われたわ
2020/11/29(日) 20:57:17.58ID:IKbaIR8zM
元スレ読んでないけど仕事で乱数使うの?
2020/11/30(月) 03:02:50.68ID:sOcEfqne0
ちょっと前にランダムなデータを提出する謎仕事の質問があったなあ
VBA化したら一瞬で終わるようになって事務員がクビになったとか、そんな話
2020/11/30(月) 08:57:41.49ID:xTe8QWkix
んん??

ランダムなデータを手作業で作るの?
かなり偏り出そうな…
2020/11/30(月) 11:41:47.50ID:iR+tWSWoM
データ数が有限だと、それが本物の乱数なのか人工的な物なのか判断する方法は存在しないんだよね
どんな数字列でも無限にある乱数列のどこかに存在するってのが本来の乱数の性質だから
834デフォルトの名無しさん (ラクッペペ MM8f-0O1z)
垢版 |
2020/11/30(月) 12:10:12.72ID:Jnj49cs/M
仕様書の範囲内でバラけた成績を印刷するお仕事
2020/11/30(月) 13:26:59.23ID:owcTZSsV0
無限のデータって何よw
あったとして、お前それ仕事で扱うの?www
836デフォルトの名無しさん (ワッチョイ 9fe6-0O1z)
垢版 |
2020/11/30(月) 20:42:38.07ID:ocjeHolz0
無限発射編と言っても実際には無限じゃないしな
本当に無限発射すると宇宙がヤバイ
2020/11/30(月) 23:51:07.47ID:14M55Ual0
毎日出力される日報の各数値を手打ち入力とかよくあるわな
そんな無駄な作業専門で雇われている人、無駄ともおもわず人件費払っている企業
なんて古き良き日本にいくらでもあるわな
2020/12/01(火) 01:02:20.49ID:KOqkaYUf0
夢幻には続かないだろ。
人類がドンナニ存続したところで地球が太陽に飲み込まれたところで終わり。
はい。どこが無限?
無限舐めてんの?
2020/12/01(火) 13:40:24.29ID:ONuiiYDb0
設計書のヘッダー全部オブジェクトにしたやつなんなんだよ
頭わいてんのか
2020/12/01(火) 15:04:54.04ID:5apuVehDa
許可とって修正すればいいのに
2020/12/01(火) 15:57:24.69ID:vDY3LCcWa
本文と共通ヘッダーの構成があわないからオブジェクトで無理くりヘッダー作ってたりするんだよな
うちにもそういうのあるわ
2020/12/02(水) 18:57:34.84ID:EOzgXD7Pr
すいません、全くvbaについて無知なのですが、A2セルに入力した数字を、A3セルに=A2にて反映させてます。A2セルに続けて数字を入力した時に、A3セルの数値は、続けて入力した値になると思うのですが、入力した内容を上書きせず、A4.A5.A6...と、下のセルに移動させることは可能ですか?また、その数値も自動的に小さいものから並び替えできるでしょうか?
2020/12/02(水) 19:24:49.44ID:81/GxXQs0
1回目入力 A3に
2回目入力 とりあえずA4に
A3〜A4を並び替え
3回目入力 とりあえずA5に
A3〜A5を並び替え

って事?
2020/12/02(水) 19:37:38.35ID:nZBMSUJj0
VBAに使用期限つけてパスワードかけて異動するわ
来年のある日から使えなくなる
さようなら
2020/12/02(水) 21:30:31.44ID:/gAV7aXpr
異動かよ
呼び戻されるだけじゃん
辞めろよw
2020/12/02(水) 21:31:41.45ID:gNwzbv2M0
>>844
VBAのパスワードなんて簡単に解除できちゃうから意味ないぞ
2020/12/02(水) 22:02:06.69ID:nZBMSUJj0
>>845
いや、知らないですけど、くらいにとぼけようかなと
>>846
そこまでガチガチにやるつもりもなく
プロパティのロックしとく程度の予定

やっぱ悪質かなぁ
上司と遺恨のあるまま異動だから悔しくて
848デフォルトの名無しさん (スフッ Sd94-3VNM)
垢版 |
2020/12/02(水) 23:32:51.81ID:sVdwSulSd
自分で作ったんなら削除して手作業でやるんですよと引き継ぎすれば良いやん
2020/12/02(水) 23:51:34.76ID:HxNBAEyx0
>>843
いや、入力は全てA2セルで固定して行い、A3セルに反映された値を消すことなく(A2に次の入力があれば、A3の値がA4とかに移動すりかして残るように)、連続入力がしたいです。
2020/12/02(水) 23:59:29.48ID:gNwzbv2M0
>>847
その気持ちスゲー分かるわ
だって俺と考えてること一緒だもんw
2020/12/03(木) 00:00:39.50ID:txWN3KLI0
出来る
2020/12/03(木) 00:23:36.83ID:Bl+88s6V0
>>847
時限式のマクロウイルスみたいだな
2020/12/03(木) 01:18:20.98ID:VMRuQ+pk0
2020年をマジックナンバーとして仕込む
特定のデータをマジックナンバーry
閏年を考慮しない
自作アドインを前提にする
外部VBAをローカル指定する
2020/12/03(木) 07:23:21.58ID:Fq6gB0XC0
会議を管理するデータベースを作成しています
テーブル1に日付、開始時間、会議名、条件があり、
条件がTrueの会議名を重複なくテーブル2に転記
その後テーブル1に新たな会議データが登録された場合も、
条件がTrueでテーブル2に該当がなければテーブル2に転記という流れ

↑こんな感じで良い方法ありますでしょうか
2020/12/03(木) 07:27:15.83ID:EYBx9umhM
その通り作ればいいじゃん
2020/12/03(木) 07:43:14.95ID:Bl+88s6V0
>>854
それを作るのがあなたの仕事では?
自力でできないならできる人に頼むしかないと思う
2020/12/03(木) 07:46:08.63ID:MQ9f0mIwx
作ってくれスレじゃねーからな
2020/12/03(木) 10:27:32.16ID:++Zqkwk80
>>849
合ってるやん

1回目(A2に)入力(したのを) A3に
2回目(A2に)入力(したのを) とりあえずA4に
A3〜A4を並び替え
3回目(A2に)入力(したのを) とりあえずA5に
A3〜A5を並び替え
2020/12/03(木) 10:29:56.68ID:OwpIF+c4r
>>858
あってますね。すいません、理解力が足りませんでした。
2020/12/03(木) 11:38:03.37ID:7S9ZRXuG0
>>847
転職ならいいけど異動ならその上司が移動先の上司に電話して「なんか動かなくなったから彼1日借りるね」って言われて直させられるだけやん
しかも原因わかったら移動先の上司にチクられるだろうし
2020/12/03(木) 12:58:46.44ID:7SYgfNcjM
全然関わりない遠い部署に行くから
俺が完全に自作したものを皆が使い回してるだけだし無効化してやろうかなと、
そこに行ったら知らないで通して最悪本当に呼び出されたら

下のように感じでコメント入れとけば
最悪、立ち会いでモニタ見られながらやっても
確信犯なのは避けられるかなと…
このまま異動はどうも許せんくて
性格悪いのは自覚してる

'マクロを最新で運用するために必須
Private Sub Workbook_Open()

    Dim today As Date
 Dim exp_date As Date
 today = Date

    '日付制限して確実にメンテナンス
 'これは怠らないこと
 exp_date = "2021/2/20"
 '書類の改定の確認で定期的にメンテナンス が必要だから一度確実に止めてしっかり確認

     If Not today < exp_date Then
   ThisWorkbook.Close savechanges:=False
 End If
End Sub
2020/12/03(木) 13:04:06.25ID:By9u7ZkT0
好きなようにしてここからも関わりのないどこか遠くへ行ってね。
ずーっと複数人がしてた忠告に耳もかさず我を通した結果であって
最後くらい責任持ってケツ捲くってね
2020/12/03(木) 13:04:24.24ID:eDye5v6CM
バレたら損害賠償モノだと思うし容易にバレると思うけど
2020/12/03(木) 13:10:53.58ID:AggFt+oH0
会社の時間を使って作った会社の資産であるのに個人のものと勘違いしてる馬鹿
2020/12/03(木) 13:54:32.21ID:7SYgfNcjM
家で作ったプロシージャをtxtでコピーして会社にメールで送ってハメてただけだから 
ほとんど個人の時間削ったものだけどね
ちょっとやってみるかなあ
866デフォルトの名無しさん (ワッチョイ e217-jrSk)
垢版 |
2020/12/03(木) 18:28:51.55ID:wVqnbq9D0
application.ontimeメソッドを使ってるのですが、

For i = 0 To Counter
Application.ontime StartTime + Interval * i, "renzoku"
Next i

これを停止させるのが難しそうだったので、
停止はさせないで、エクセルを閉じれば停止すると思ったのですが、
他のエクセルを開いた状態で、これを閉じたら、
またマクロが動き続けてしまいます、
ontimeメソッドを停止させるか、
マクロの書いてあるエクセルを閉じたら、
ほかのエクセルが開いていてもマクロを停止するようにはできないでしょうか?
2020/12/03(木) 18:35:32.96ID:0OrJPKRU0
ワークブックのイベントで検索
2020/12/03(木) 19:23:44.42ID:PVVpY3tx0
>>866
タイマーで設定した内容をどこかに覚えておいて、また停止させるマクロを動かす
面倒だけど、それ以外に方法はない
2020/12/03(木) 19:41:46.88ID:is546aJe0
CSVのデータを開いて
全部その中で計算させて結果だけをマクロブックに取り込んでCSVを閉じる
初心者ながら成功した…うれしいわ
870デフォルトの名無しさん (ワッチョイ 6e01-zLCK)
垢版 |
2020/12/03(木) 21:55:24.24ID:anyYWQoy0
「慶應卒の学歴なんていらない」10代起業で成功する子の共通点
https://www.excite.co.jp/news/article/President_35457/
【アプリ開発で起業】必要な心得とマネタイズ方法のすべて
https://www.dreamgate.gr.jp/contents/column/application-development
学生起業家が開発、「人を軸に本を探すアプリ」とは?読書通じて「考える力」養って
https://newswitch.jp/p/20168
島田商高生がアプリ考案、発表 ICT起業家育成プログラム
https://www.at-s.com/news/article/local/central/730010.html
医師コンビが「治療用アプリ」で起業、禁煙に続き高血圧治療アプリを開発
https://diamond.jp/articles/-/229375
好きが高じて“カレー起業”、キャッシュレス決済アプリ「TOKYO MIX CURRY」の挑戦
https://diamond.jp/articles/-/215868
起業で成功するキャリア形成の仕方とは? 元プロサッカー選手で起業家の鈴木啓祐氏に聞いた
https://sogyotecho.jp/career-development/
年収3,000万超え!?個人開発で儲かっている海外コミュニティサイト5選!
https://note.com/taishikato/n/n7809a8ed3ffc
2020/12/04(金) 00:52:07.07ID:rXUXpqvxr
ほとんどの解説サイトではcells("A1")と記載されてますが、cells (1,1)の方が分かりやすいし、vbaも組みやすいのに、なぜA1と言う記載なのでしょうか?
ここの人たちはどっちを使ってますか?
2020/12/04(金) 01:43:32.26ID:/uuA3VLbd
>>871
range(″A1″)ね
初心者向けにイメージ掴ませやすいような表記をしてるだけでは?
インクリメントとか考えるとcells使う方が確かに分かりやすいけどどういう訳か初心者はcellsを理解してくれない
2020/12/04(金) 01:44:00.17ID:xF22O8yc0
>>861
何もしないで放置しておけばいいよ
周囲の仕様変更で使い道なくなるだろ
後腐れなく異動しようぜ


VBS使うとウィンドウ非表示で目的のファイルの削除、その後にVBSファイル自身を削除ってのが出来るけど
そんな時限爆弾がスタートアップフォルダに入ってたなんてー(驚愕)
874デフォルトの名無しさん (アウアウウー Sa83-13fy)
垢版 |
2020/12/04(金) 01:44:10.31ID:oC1oU7iua
range("A1") と cells(1, 1) なら変わらないけど、k列とか言われるとね
固定された位置なら前者じゃないかしら
式の解析をする分だけ前者が遅い気がするけど
2020/12/04(金) 01:45:24.52ID:oC1oU7iua
変数をつかうなら、cellsでね
2020/12/04(金) 01:46:09.78ID:oC1oU7iua
行や列と指定に変数をつかうなら、です
2020/12/04(金) 01:46:59.97ID:oC1oU7iua
A1にoffsetもありか
2020/12/04(金) 02:20:30.55ID:ifXtoFa7r
>>872
あ、rangeでした
普段使わないから間違えた
たまにしか使わないからサイト検索しながら組んでるんてすけど、分かりにくいからやめてほしい…
2020/12/04(金) 02:33:53.57ID:pAim30VZ0
>>878
いつものあいつ
2020/12/04(金) 06:54:12.47ID:Ao/7FxRU0
rangeは範囲を選択するときは便利だけど1つのセルならcellsだね
まあ範囲も動的ならrangeの中にcells使うけど
2020/12/04(金) 06:57:58.98ID:zpKrUFifM
rangeは名前付けてるセルを指定するときに使う
2020/12/04(金) 10:09:04.15ID:QvMd2aQjM
最初の頃はExcel上とかRangeだとA1(A列、1行)って列、行の順なのにCellsは行、列の順だから混乱した記憶がある
2020/12/04(金) 12:34:38.31ID:j7DbuDw80
歴史的にはR1C1方式の方が先なんだけどな
2020/12/04(金) 14:03:07.99ID:ESISvWhvd
>>830
入構2週間前からの体温を記録する資料の提出を入構2週間前切ってから要求された場合とかな
vbaじゃなくワークシート関数でできるけど
2020/12/04(金) 14:09:34.65ID:UF2xE4cEH
ユーザーフォームで使用するSubやfunctionプロシージャって標準モジュールに書くのが一般的?
独学だからよく分かんないのよね
2020/12/04(金) 14:11:25.58ID:UF2xE4cEH
↑ユーザーフォームで呼び出すの方が適切だったかな
2020/12/04(金) 15:05:45.91ID:QvMd2aQjM
個人的な好みだけどそのフォーム内でしか使わないならPrivate Subでサブルーチン作っちゃうかなぁ
クラスモジュールとフォームの両方から呼び出したいとかだと標準モジュールに書かざるを得ないけど
まぁそれにしてもプロシージャの頭にコメントで処理名、機能、引数、返り値、備考を書くようにはしてるからそこに何処から呼んでるかとかぐらいは書いておくけど
2020/12/04(金) 15:08:50.81ID:NJplFCDqM
どうでもいいんじゃない?
モジュール化云々が問題になるような粒度の責務をVBAに負わせている時点でシステム全体の設計を疑ったほうがいい
2020/12/04(金) 15:29:16.67ID:UF2xE4cEH
>>887
確かにワークブックイベントでユーザーフォームのpublic Subが呼び出せなかったからどこに書いたらいいのか迷ってしまったんだ
クラスの理解はなかなか難しい
参考になりました!
890デフォルトの名無しさん (ワッチョイ 6e01-zLCK)
垢版 |
2020/12/04(金) 17:33:04.77ID:9AUT9QCq0
中学数学からはじめる微分積分
https://www.youtube.com/watch?v=4p1rwfXbCoY&;t=4341s
中学数学からはじめる相対性理論
https://www.youtube.com/watch?v=voFHToRM4xI&;t=10s
中学数学からはじめるAI(人工知能)のための数学入門
https://www.youtube.com/watch?v=7A05OamqCyc
中学数学からはじめる三角関数
https://www.youtube.com/watch?v=OLqgs4fJl7Y&;t=3803s
2020/12/04(金) 22:21:10.08ID:+mljwe0d0
クラスで挫折したけどユーザー定義型で大満足です
2020/12/06(日) 04:50:03.54ID:hAx1GypdM
汎用性が高そうなのは標準モジュールにするぐらいの適当さでいいよ
VBAのメリットは手軽に書けるとこだし

それより出来るだけメソッドで処理を区切るといいよ
メソッド名で何してる部分なのか分かりやすくなるし、
変数の使い回しが避けられたり、コピペしやすくなったりメリットが多い
893デフォルトの名無しさん (ワッチョイ 38e6-xfUJ)
垢版 |
2020/12/06(日) 10:12:36.99ID:j9ZLT2ad0
必要なパラメータが少なければな
毎回フォームのValue読むとか最低だし
2020/12/06(日) 12:03:36.23ID:/svRxsbg0
課題が集約されてるサイトとかありますか?
検索してもIf文を使ってなど基本問題しかなく、もっと実用的なツール作成などの課題が欲しいです
2020/12/06(日) 12:46:36.44ID:q9M2MiSg0
こんなツールが欲しいってのを作ればいいじゃん
2020/12/06(日) 17:40:13.12ID:hPxm9AMa0
>>894
課題が集約されたくなるBGM
https://www.nicovideo.jp/watch/sm35359889
2020/12/06(日) 22:20:11.18ID:sERfGt0q0
もう課題じゃなく必要なものを作ればいいんじゃね
必要なものがないなら何で勉強してんだよ
2020/12/07(月) 03:29:03.52ID:yHI9MFHB0
欲しいのは課題じゃなくて解答だろう
2020/12/07(月) 16:02:20.71ID:jH6ow3A+a
ここに見つけた課題の質問はするなよ
2020/12/07(月) 16:07:44.46ID:6Oxb+EmAM
VBAなんて解説サイト沢山あるんだから、
その場その場で分からない所をググればいいんじゃないの

カンニングokの試験のために勉強するようなもん
時間の無駄
2020/12/07(月) 21:46:54.62ID:MfiN0qq40
ここで質問する人の検索能力
2020/12/07(月) 22:20:43.96ID:x2seJpDD0
能力以前に検索する気が
903デフォルトの名無しさん (ドコグロ MMa8-dtvz)
垢版 |
2020/12/07(月) 22:30:31.51ID:heoFqJclM
検索語の先頭にはvbaを書くのが基本
2020/12/07(月) 22:57:19.40ID:JFqExP+fa
検索するより聞いた方が早いとか思ってる初心者
レス数が900を超えています。1000を超えると表示できなくなるよ。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況