Excel VBA 質問スレ Part80
レス数が1000を超えています。これ以上書き込みはできません。
ExcelのVBAに関する質問スレ
コード書き込みや作成依頼もOK
次スレは>>980が立てること
無理なら細かく安価指定
関連スレ
Excel VBA 質問スレ Part79(ワッチョイあり)
https://mevius.5ch.net/test/read.cgi/tech/1674875532/
※前スレ
Excel VBA 質問スレ Part79
https://mevius.5ch.net/test/read.cgi/tech/1674874007/ >>899
フッそいつは残像だ、お前の力はその程度か、ならば桜と共に散れ って言う >>899
はあ?そんな事したらぜってー許さねえよ 関数や機能で出来るならその方がいいけど繰り返しや一括処理でVBAに勝てるわけないのに
なんじゃこりゃってくらいものっすごい長い数式をセルに入れてドヤられるのもイライラする >>904
マクロ仕様の警告出る出ないは大きく違うから仕方ない LETのような長い計算式を見やすくする機能はどんどん追加してほしいよね
画面幅超えるような式見るとちゃぶ台ひっくり返したくなる いまだにちゃぶ台なのかあ なんかちょっと切なくなった 和式生活送ってたらちゃぶ台くらい普通だろ?
と思ったら脚たためないとちゃぶ台とは呼べないのか
うち掘りごたつだから座卓と呼ぶらしい
勉強になった ヒーターが出っ張ってて足がみすぼらしかっただけだよな >>909
それはGoogleスプレッドシートの話とごっちゃになっているだけだろうな >>917
あなたは今のコタツを知らない
使えるの意味が違う 布団をはぐると、コタツとはわからない、テーブルとしてまったく違和感なく使えるデザインになってる 関東でも内陸だと座卓は冬はコタツになる。
まともな座卓もない家に育ったのかな? ヒーターが部分が出っ張っているコタツなんていつの時代のコタツだよw
安物を使っていただけなのに、いまになってそうではないものがあると気づいたのか? 自己流で課内のデータ処理システム作らされて15人規模で共有してたけど
他部署にまで配布すんじゃねーよ
僕のデスクトップのデータが処理出来ないんですけど?とか内線電話きてキレそう >>922
何コタツに必死になってんだか
あ、そういうことか。可哀想にw 座卓がないような家庭だったんだろ
コタツのイメージが小さくて安いものだった貧乏家庭だったのは馬鹿にしているわけではないが、ものを知らずに最近は、最近はと言い出したら、高齢者の仲間入り。 大きなテレビとコタツが必ずあった時代は平成で終わり
最近の家庭はどっちも買わないって知ってた >>926
コタツじゃなくて座卓だ
安いコタツをコタツと呼ぶのはかまわないが、座卓もコタツが多い
狭い家に住んでいると大きなテレビはそもそもいらない。立派な座卓もいらない
冬がさほど寒くない地域と札幌なみの気温になる東京都や埼玉県の内陸は、室温を上げる暖房は非効率すぎてエアコン暖房はやらない。
都心のオフィスビルも床は温まらない。不動産屋が語るイメージと実際は異なる。 度を超えた長い式、エラーになってる時あるからもはやお手上げ。
どこから取ってきたんだと言いたい長い式ね Microsoftが作ってるアドインの「Excel Labs」の導入をおすすめします。
数式機能が入ってて、各種検証も使えます 結構マルチな機能でかーなり便利な出力システムをVBAで作ろうと思ってる
具体的なイメージは全くないけどすげー!ってレベルのもんを何とか作りたい >>932
今一部でブームな投資系はどうだろ
投資先の分析、複数口座をまとめて管理などあれば便利
複数証券会社、銀行またがってこれらを統合活用、管理できるのは無いと思う
マネーなんちゃらが一部まとめだが完全じゃないのよね
すでに複数先で投資してないとモチベ上がらない(検証できない)だろうが >>933
ごめん、そんな高尚なもんじゃない
分析職場で色んな機器からピコピコ出てくる色んな種類のExcelやcsvのデータをシュババって類別して計算させて社内サーバーに累積させていくような
専用システムっぽく作りたい
ユーザーフォームにボタンを何個も作ってそこで全部制御出来るみたいな
ここだと自分の仕事を楽にする小技として作ってる人が多い?
複数の機能を追加して課や部で当たり前に使われてるツール作ってる人いるかな? >>934
作ってる人も作れる人もいるでしょ
ポイントは色々あるけど、仕様をまとめてくれる人が必要
難しすぎる構成にしないで、別の人でもメンテできる範囲にしとかないといけない
これがなかなか難しい >>934
分析なら power queryや Access DB使ったら楽なのにと思っても、使える人はほぼいない
もし社内でoffice365使ってるならAccess使える
これ使えるようになるとめちゃ便利なんだけどね
(DB機能はもちろんレポートが優秀) >>936
パワークエリやアクセスは無理なんだわ
俺ももうおっさんだし勉強する脳がない
データベースってほどじゃなくあくまで別のワークシートに出力させたり計算させたりの処理がメインで値は少しずつ蓄積されてくだけ
ということでVBAで勘弁してほしい
一部アクセス使ってるのも上司がエクセルに統一すると言うてる
おーこれすげーじゃんやるじゃん
レベルのシステムをVBAで作りたい ユーザーフォーム至上主義おじさんだからとにかくこれを制御パネルとして専用システム、専用ソフトっぽく作りたい
あと自分がいる時はアメーバのように組み替えて直して要望があればすぐメンテも出来るように作るけど自分がいなくなったらゴミになっても全然構わない
別の人が見て直したきゃ勝手に直せスタイル
かなり職場を効率化させようと野望を企んでる その、分析機器から出て来るデータファイルって、大抵はメーカーが指定したマシンに繋がってるとかで
「ネットに繋げないでください」みたいな制限無い? アプデのせいでアプリが誤動作するとかいう理由で
繋いだことに依る故障やエラーは保証外です なんていうのも稀によくあるんだけど
そういう縛りが無ければ、分析結果をサーバーの特定領域にデータ転送して、あんなことやこんなことを
するのは容易だと思うけど、その縛りのせいで已む無く部署別に単独で処理するっきゃない、という現場が
多いような気がする 気がするだけだけど それと、そういった機器は結構高額なものが多くて、会社から買い与えられた段階で何だかわからないけど
得体の知れない特権階級意識みたいのが芽生えてしまって、おれさまと俺様が許した奴にしか、ぜってー
触らせねえ!なんぴとたりとも近付く事すら許さねえ!がるるー に陥って、にっちもさっちもいかなく
なる場合も有ったり無かったりする 上の方の根回しが出来なきゃ絵に描いた餅(画餅)に終わってしまう
誰もが容易に扱えるように成ると、自分の立ち位置がヒラに逆戻りしたような気にでも成るんだろうか
まぁ、それは、システムを制作する側にも言えることだけど >>939
社内のセキュリティも糞厳しいから出力されたデータのみ通信可能なよう申請も出して運用してる
仰る通りでメーカー機器のPCはOSアップデートないし基本スタンドアローンだね
そのPCでは基本分析ソフトしか運用するな、他の事やったら保証できないと言われてるけど出てきたcsvの吸い出しは大丈夫ですよと言われてる
だからVBAは別のPCでやる
csvデータの複数の情報を条件によって分岐処理して社内サーバに400くらいあるワークブックに入れていきたい
csvを魔術師のように華麗に確実に処理させたい
ただ計算とかあってどうしたらいいのかまだまださっぱり >>937
>値は少しずつ蓄積されてくだけ
>一部アクセス使ってるのも上司がエクセルに統一すると言うてる
蓄積されているデータ扱うならDBにしとくのが普通と思っていい
excelでDBもどきのロジック組んでも、やらなくていい労力使ってるだけ
メンテ性も落ちる
今のアクセスのツール?がDBに相応しい処理ならエクセルにするのは愚の骨頂
ムダに移行後ツールを新規に作って、さらにDBの使い勝手、発展性を全部捨てる行為
まあそうは言ってもリーマンはしょうがないのもわかる
>おーこれすげーじゃんやるじゃん
>レベルのシステムをVBAで作りたい
スゲーのはまずメンテが難しくなると思ったほうがいい
スゲー=メンテが難しくなっても知らん
なら止めない(それっぽいこと書いてましたね)
スゲーのを作るんじゃなく、適材適所でエクセルもパワークエリもアクセスもそれぞれ相応しい場面で効率的に使えるジェネラリスト(大げさ)を目指す方がよっぽどマトモ(あるべき姿)です
これらを駆使したシステムこそ真のスゲーシステム
(IT関連社員からの理想論でした。無理せずできることやりましょw) >>944
正確には元IT関連でFIREして西の方の田舎でノンビリ
近くなら昼飯交通費でアドバイス行けるんだけどね >俺ももうおっさんだし勉強する脳がない
パワークエリーってクエリーって付いてるからAccessのクエリー(SQL)みたいなもんだと無視してたら違ったw
これ↓見て、便利に使えるとこあるじゃんってわかったのよね
そこから活用するようになった
(まずはexcelの範疇ですし)
とりあえず11章全部目を通してみて
おぉ~ってなるとこあるはず
【初心者向け】パワークエリ入門:ETLツールを使ってエクセルデータを簡単に整形・統合しよう!(1/11)
https://ittrip.xyz/soft/excel/lesson1#google_vignette 重複起動させないコードを作成してみた。自己流です。
これで、上手くはいってるようですが、
皆様はどのようにコーディングしてますでしょうか?
Private TTT As String
Sub 四角形角度付き1_Click()
Dim dt As Long
'''重複起動チェック
If TTT = "" Then '初回での起動時(つまりTTT = "") では、重複起動チェックしない。
Else
dt = Abs(DateDiff("s", Time, TTT))
If dt < 60 Then ''''重複起動チェック 60秒内の起動は断固阻止!!!
MsgBox "60sec以内に重複起動∴重複した処理中断!あと" & CStr(60 - dt) & "秒 待ってネ"
Exit Sub
End If
End If
TTT = Time
'''本処理
〜ファイル書込みがある少々重い処理 60秒位かかる〜
End Sub 年齢なんてただの値 勉強はいくつになってもできる。 >>947
それ二重起動が問題なんじゃなくて、本処理という部分の実装がおかしいんだぞ?
ファイルの読み書きを同じフォルダ、同じファイルでやることがおかしい。 >>947
そもそも本処理が非同期というか、別スレッド、別プロセスとかになってないと…
そのメッセージ出せるか?出てるのか?
それと、クリックしてはいけないのなら、そもそもクリックできないようにしておくのがbetterなUI
(仕様は詳しくわからんけど)
ボタンenableをFalseとかにしておく MsgBox "60sec以内に重複起動∴重複した処理中断!あと" & CStr(60 - dt) & "秒 待ってネ"
はでる。
ちなみに、図形(オートシェイプ)をクリックで
Sub 四角形角度付き1_Click()が起動する仕組み
10秒ごとに図形をクリックし、その為にmsgboxの[OK]を
10秒未満でクリックし続けると
「あと50秒まってネ」
「あと40秒まってネ」
「あと30秒まってネ」
「あと20秒まってネ」
「あと10秒まってネ」となり
そして、その後は本処理実行できるが、また
「あと50秒まってネ」
「あと40秒まってネ」
「あと30秒まってネ」
… となる。かなり忙しくクリックしまくればだけど >>951
その「あとn秒まってネ」を出っ放しにしといても本処理は止まらず動いてるのかね? 海外赴任で職場を去った前任者女性のコード見て新データに合わせて改良してるけどコメント丁寧で見やすいなぁ
俺はこんなにわかりやすく次世代に引き継げるだろうか >>952 鋭いご指摘ありがとうございます、
「あとn秒まってネ」を出っ放し中は、本処理は止まってる模様
「あとn秒まってネ」の[OK]をクリックし
「あとn秒まってネ」の表示が消えると本処理は再開となりした 「あとn秒まってネ」の意味は
❌ 本処理が完了が、あとn秒 ではなく
⭕ ボタンクリックするのは、あとn秒 の意味です。
MSGBOXの表示は、
ドンドンクリックするな、あとn秒後にクリックしろーー
という 旨の変更で検討します。 面倒でなく、本処理が止まらないのを優先なら
図形(オートシェイプ)自身、またはその横に「h:n:sくらいまで実行中」のように書いて、クリック時の処理は実行中フラグONなら直ちにexit sub
(クリックに無反応。書いてあるのだから無反応で構わない)
本処理終了で↑のメッセージ消去とフラグOFF
メッセージ書くとこ無ければ、メッセージ出すだけのuserFormを作成して表示
これで表示するだけなら本処理は止まらない(このForm表示で少しつまずくかも)
クリック時の処理は実行中フラグで……は、最初のと同じ
本処理終了でForm消去とフラグOFF
いまパッと思いついたのはこんな感じかな >>956
図形クリックしてから「ダメだよ」って示すのではなく、「今クリックしてもムダよ」ってユーザーに予め示しておくのがBetter
本処理が例えばもし30秒で終わったら、直ちにクリックできるようにもなってないといけない
90秒かかってしまったら、それまでクリックで本処理に突入してもいけないだろう(多分) 本処理終了の判定が出来ないから60秒なんて糞みたいな判定をしているんでしょ
何故出来ないのかは本人にしか分からないから何も言えないけど糞 俺の塩(カップ焼きそば)を美味しく作るための時間が60秒なんだから仕方ないだろ おそらく本処理にdoeveがあるからクリック反応するんだろう
本処理止まるから終了は判定可能
時間を予め決め打ちはマズイ
ステータスバーに進捗出すのも手
しかし10万ループずっと更新するのもムダ
この場合は1000ループに一回更新とかにする
多数の個別処理がある場合は、ステップにバラつきでるけど個々に進捗出すしかない
xx処理中…(33/123)
とか エクセルの学校に相談しよかな
面識もない俺の師匠があそこにはいる Acrobatのライブラリを使って
PDFに文章追加したいのですが、フォントに CODE 128 の指定ができません
以下のページを参考にコードを書いています
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q11140444616
field.textFont = "CODE 128"
field.textFont = "CODE128"
どちらもダメでした
ご存じの方いますか? OutlookVBAでメールの添付ファイルをスレッドごとで別々のフォルダに格納したいのですが、良い方法はありますでしょうか。
現状“RE:”を無視する形で同一件名をフォルダに落とす形で考えたのですが、色々と無理がありそうです‥ >>966
フォントインストール済みです
Acrobat で編集してフォントを CODE 128 に手動で変更すれば
バーコードになります >>965
色々との中に日本語説明力も入れといてね >>967
「Code 128」は試した?CODEじゃなくてCodeな
それがだめだったらフォントのPostScript Nameをちゃんと調べな >>968
結局無理ということですか?返信メールにつくRE等の挿入文字は表記に揺らぎがあったりするので、、 課の改善テーマがVBAによる一元管理なんだが俺しか作ってねぇ
出来た?じゃねーんだよ
あ~それ組めば出来るっしょみたいな奴らが何にもやってねー >>973
課のテーマならまず課長が組めるようにならないとお話しにならない
もし課長が元々組めるなら、お前ができるからって押し付けんなって反発はされるだろうが、努力して組めるようになったんだから反発するのは「改善の努力したくない」と宣言するようなもん
やらないやつを追い込め。今や小学生からやることだからバカ扱いで構わない >>967
実行するとエラーになる?
スルーされる?
もう忘れちゃったけど、
Javascriptでやらないと反映されないのが何かあったな なぁ、盛大な野望持ってると前に言うたやん
言われたからパワークエリを少し調べて見たけど全くわからん
access、VBA、パワークエリ
の関係性をマジで噛み砕いて教えてほしい >>977
ありゃ、難しかったですか…
閃かなかったならパワークエリーが便利に使えるところが無いからかもしれない
使えるとこないならもちろん覚えなくていい(しかしこれから使えるとこあるかもなので何ができるかは記憶に残しておこう)
例えばexcelシートのデータをAccessのリンクテーブルで使おうとすると、一行目が項目名でないといけない
だけど、個人的にシートにまとめたデータとか、上の方に表題や解説を書いてたり、表は3列目以降にあったりする
それらのムダな情報を除去して、必要な表データを取り出せるのよ。元のシートはそのままに
純粋な表データになったらAccessDBのリンクテーブルとして使える
(リンクテーブルとは、普通はDB内に作成するテーブルと似たものをexcelのシートの表データで代替するもの。シートの値を変えるとAccessからもその値が見える。DB内に読み込んでしまうと、最新を常に読み込まなくてはならなくなる=不便)
続く >>977
DBは例えば商品テーブルと売上テーブルがあったとして、それらから共通の商品コードを紐づけにして、関連データを得る感じ
これらはそもそもDBとはどういうときに便利に使えるかをまず知らないといけない
自分の仕事(分析)に使えそうかをそこで判断してからです
まずは1つのテーブル(データ)から始めることもある
例えばシートのフィルターを使うと思うが、各項目間の条件はandでしかできない
値がxxで始まるという条件は2つしか書けない
などの制限がある(だよね…)
Accessのリンクテーブルにするとクエリー(SQL)で自在に条件指定できる
これに当てはまれば、これだけでもAccessにする価値ある
(入り口は簡単なことでいい。使えそうなネタが無いのに勉強もする気起きないだろうし)
私が新しいことを勉強するときはまず必要な(便利になる)ネタを探す。見つかったら勉強始めること多い >>979
前にも書いたけど、パワークエリとAccessのクエリは別物です
自動車と言っても、エンジン車、HV、EVとか動力機構が別物みたいなもん
共通なとこは、元のデータをゴニョゴニョ加工して別の形で取り出す仕組み、な感じ >>979
AccessのVBAはexcelと似たような立ち位置
シンプルなことならVBA使わなくてもできる
しかし規模が大きくなったり便利に使おうとしたら必要になる
もちろん覚えることはAccess固有のことのみで可。しかし、多分使えるようになるのは簡単ではない
excelのブック、シート、セル、シェイプ等がどう関連してるかというオブジェクト関連図があればほとんどの操作は簡単?なように、Accessも関連図探してくれば想像の範疇に置けるとも言える
VBEでF2で出るオブジェクトエクスプローラ(だっけ)をよく活用してるなら、効率よくVBA書けるとも思う うーんムズい
超膨大なデータを扱う訳じゃなく多少の効率とか最適かは置いとくとぶっちゃけVBAで強引に何とかなっちゃう感じのものかな?
数台の分析機器がそれぞれの独立したワークブックの下の行にデータが1行ずつ累積されていく
俺のVBAはそれを開いてシートコピッて自ブックに持ってきて不要な行を削除して列を変えるの作っただけでね
実行すると自ブックに複数のコピられたシートが集まる
同シート内でもサンプルの種類がまちまちにあるそいつらをサンプル毎に分かれてるブックにデータを飛ばしたい
うーんむずい accessは正直使わないんだよな
使用頻度なんて99.999%でexcelだし
従ってaccessは脳から消去
パワークエリを引き続き覚える Accessは1ファイル2GBの上限あり
これに引っかかってUnion Queryで動きが取れなくなり
Excelのデータ モデルに戻ったでござる >>985
1ファイル全部入っている必要はない
テーブルは別出しでもいいし、デカすぎるテーブル一つを外だしでもいい
それよりテーブルデカくなれば、SQL server express(まだあるっけ?)
無料でやりたいなら、postgre(綴不明)とかもある >>987
2GBはファイルサイズの話だから仮にクエリに1バイトも使ってなくても上限は迎える
他人の脳みその性能気にする前に頭の上の蠅を追うべき >>989
全部入りで1GBとか超えてきたらテーブル別出しを検討していい
(これからもデータ増えていくなら)
そうするとテーブル以外のフロントエンド部のファイルがコンパクトになって、それによるメリットもある >>990
excelに行くのがありえない大きな間違い 何故Excelの最下行を移動させてるし たぶんそれぞれの端末で個別のExcelファイルに取り込んでるんだろうけど、
サーバー側にひとつだけExcelファイルを設けて、そこにそれぞれの計測器からのcsvを入れる方が一般的では
個別のファイルの列(項目)のMaxを設定して、計測器ごとの生データから必要な列に割り当てるようにしたほうが
百倍楽なはず まさか、計測器の分析アプリがExcelに直接データを埋め込んでくれてる訳でもあるまい
難しく考えるからより面倒に成る Think easy シンプル・イズ・ベスチャ 10年間での期間最大とか
いくつかの項目での前時間コマとの差とか
10地点合計の時間軸串刺し合計とかやるので、
Union Queryせざるを得なかった >>992
データモデルはデータの持ち方でしかなく、
Accessからアクセスしたっていいんだぞ 2026年にサポート終了するので、
Access使ってるところはShare PointとかPower Appsに移行しろ
つうことかと >>993
最下行に移動させてるわけじゃなくそういう仕様でcsvでもない
300行のデータ、追加されて301行のデータ、追加されて302行のデータ
と設備が累積データを上書きしてく
そのブックは弄れないから最新の累積データだけ常に引っ張る
今のところは >>995
EXCELのデータモデルをkwsk
accessのデータモデルではだめな理由も レス数が1000を超えています。これ以上書き込みはできません。