Excel VBA 質問スレ Part81
0001デフォルトの名無しさん
垢版 |
2024/04/18(木) 14:03:38.03ID:cMr18rZu
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/
Excel VBA 質問スレ Part80
https://mevius.5ch.net/test/read.cgi/tech/1685489018/
0002デフォルトの名無しさん
垢版 |
2024/04/18(木) 14:06:15.10ID:cMr18rZu
申し訳ない、今立てた
不備あったらごめん
0005デフォルトの名無しさん
垢版 |
2024/04/18(木) 17:10:43.16ID:Z+31e4IV
>>1

Excelの「データ モデル」って、Accessから読めたっけ?
Accessでデータ解析する気は起きなかったので、やったことない。

DBにしているExcelのBook内「データ モデル」の中身は、
他のExcel Bookからですら参照できない。
ワークシートに読み込んだクエリー、テーブルなら他Bookから参照できるけど、
104万行まで。
なので、「データ モデル」は自Book内で分析するとかの利用に限られるのでは?

Excelの「データ モデル」は、
・ワークシート表示上限の104万行以上格納できる。
・複数のテーブルを、キーとなる項目を使ってリレーションシップで紐付けられる。
0006デフォルトの名無しさん
垢版 |
2024/04/18(木) 20:53:51.83ID:cMr18rZu
>>5
excelのデータモデルと言ってもDBでは当たり前のリレーションと変わらないと思う
もちろんAccessでもリレーション指定できる

>ワークシート表示上限の104万行以上格納できる
それは外部のAccessテーブル等に格納されてるレコード数がそうであるだけですね
その外部のレコードを参照するだけならいいけど、追加、更新しようとするとスゲー面倒かと
Access上で作れば追加、更新、削除に対応したフォームも簡単に作れる
これらの操作に当たり前にトランザクションも使える
やらなくてもいい苦労をしてるだけかと

DBに相応しいことはDBで、excelに相応しいことはそちらで、美味しいとこをそれぞれ使えばいい
0008デフォルトの名無しさん
垢版 |
2024/04/18(木) 21:29:34.75ID:cMr18rZu
>>7
いちいち見に行くの面倒なんで、必要な分まとめて貼り直して(ついでに過不足修正とか)くれても私は怒りません
QとAもこのスレに纏まると思いますし
(私が答えられるとは言ってない)
0009デフォルトの名無しさん
垢版 |
2024/04/18(木) 21:59:06.27ID:Sys6qRSA
昔のファイルのコードを見ているとWorksheet(BASE_SHEET_1)って記述があるけど
BACE_SHEET_1って名前のシートはない
動かしてみるとSheet1を参照している
昔はこういう書き方してたの?
0010デフォルトの名無しさん
垢版 |
2024/04/18(木) 22:09:51.19ID:gJFugFWi
>>9
それは変数だろ?
0012デフォルトの名無しさん
垢版 |
2024/04/19(金) 00:14:26.75ID:TeTgAng2
>>7
(寝る前に少し。分析機器のやつかわからんのだけど)
現状やってるのは、例えば前日分の分析データのみを取り出してそれぞれ振り分けて保存する
だけに見える。これだけだとスゲーシステムにはなり得ない、なりようがない

例えば飲料メーカーで飲料別に分析した値のデータで何かできないか、とか
別の見方として分析機器の故障の予兆を予想したいとか
このような具体的に想像しやすい代替要素にも絡めてほしい
ジュースやミルクとかのような多くのメーカーあるならそのものズバリで構わない
どこでも必ずやってるから
今の情報だけだと、助言できても大したことにはならないかと
0013デフォルトの名無しさん
垢版 |
2024/04/19(金) 08:03:48.42ID:Ss+p8w32
「分析」となったら、
1. まず、時間軸とか商品別とかでの実績グラフ(累積、最大/最小、平均、中央値程度の基本的な統計的数値も含む)
2. 商品や地区とか時間単位での比較グラフ
3. 外の要因を探るための、天候や人口、交通量などのデータとのリレーション
4. 傾向をみるための、ヒストグラムやアウトプットの高い順に並べ替えた持続曲線グラフ
5. 外れ値を検出するために1.に重ね合わせる、箱ひげ図や標準偏差±σ、±2σ、±3σのレンジグラフ
6. 仮説の「要因」とアウトプットの関係を見る相関グラフ
7. 相関の強さを見たり、シミュレーションや将来を予測するための回帰分析
・・・思いつくだけでこんな感じか
0015デフォルトの名無しさん
垢版 |
2024/04/19(金) 08:51:53.65ID:TeTgAng2
>>13
素晴らしい
5などは一般的ではないがハマるとこではすごい役立つ
半バレするので置き換えて例示すると
ノイズにしか見えない平時の地震系の秒単位の数値推移を箱ひげ図にすると、昨日と今日のざっくり差が見い出せたりすることもある
これ導入して楽になったし品質も上がったしでメチャ役に立った
0016デフォルトの名無しさん
垢版 |
2024/04/19(金) 10:04:24.79ID:Ss+p8w32
箱ひげ図は、データを何かに活かす意味では、
もっと使われて良いと思う。

Visualize statistics with Histogram, Pareto and Box and Whisker charts
https://www.microsoft.com/en-us/microsoft-365/blog/2015/08/18/visualize-statistics-with-histogram-pareto-and-box-and-whisker-charts/
("How statistics are used in Box and Whisker"のくだり。自動翻訳でも充分わかる)

統計実務におけるレンジチェックのための外れ値検出方法
https://www.stat.go.jp/training/2kenkyu/ihou/72/pdf/2-2-723.pdf

箱ひげ図はExcelグラフのナビゲート頼りに作るより、
ワークシート関数で中央値、四分位範囲を出せるから、
手が込んでも差分を取って、積み上げ棒グラフで作った方が
後々で色々弄れる。
(ひげの部分:エラーバーはExcelの箱ひげ図機能を使うけど)
Excelによる箱ひげ図の作り方(棒グラフ編)
https://bellcurve.jp/statistics/blog/15348.html

応用で、中央値と四分位範囲から平均値と標準偏差±σに変更することもできるが、
グラフナビゲートでは、±2σ、±3σの設定はできなかったような・・・
0017デフォルトの名無しさん
垢版 |
2024/04/19(金) 10:04:45.19ID:Ss+p8w32
また、系列が255個までしか設定出来ないのは、
Excelの泣き所。
ヒストグラムや散布図といった統計グラフを
集計が速くて期間変更などのフィルタリングが簡単な
ピボットテーブルからは作れないのも。

例えば日最高気温を月系列でプロットしても、
255ヶ月分=21年とちょっとしか載せられない。

AccessやVBAは、あくまでデータを揃えるところまで。
何だったらPowerQueryと組み合わせても。
が、ここまで脱線・・・というか深掘りしようとすると、
いよいよPythonやRの出番かも?
と思ってる。
0018デフォルトの名無しさん
垢版 |
2024/04/19(金) 11:30:46.54ID:TeTgAng2
>>17
標準偏差はその言葉時点で拒否反応かもしれんけど、一部で増えてる投資のボリンジャーバンドってとこから入っていける人もいると思う
これ最初見たときは微妙だったけど、解説見てなるほどって活用してる
言葉でなくて何かしら色々サンプル見てたら閃くこともある
0019デフォルトの名無しさん
垢版 |
2024/04/19(金) 12:40:25.88ID:Ss+p8w32
標準偏差って「偏差値」に繋がって、拒否反応示すかもしれないけれど、
何のことはない、「平均値からどのくらい離れているかの『平均』」みたいなもの。

ただ、離れている距離を計測するのに、
引き算の順番で正負数に分かれてしまうので、差を二乗にしたり、
その平均もどきを出すために平方根にしたりしている。

ミソは、ある事象が仮に「左右対称のきれいな山なり」の正規分布で起こっているとしたら、
・±σの範囲は68.3%
・±2σの範囲は95.4%
・±3σの範囲は99.7%
が収まるということ。

箱ひげ図の外れ値判定は、
ジョン・テューキーとかいうおっちゃんが前世紀に考えた、
"Tukey industry standard"がベースらしく、
中央値をベースに実績の順位で25~75%の範囲の1.5倍で足切りするので、
リクツが全く違う模様。
1.5倍をいろいろ弄るケースもある。

ただし、物事が起こる事象は「きれいな山なり」になるとは限らない。

例えば、年間での「風速」の分布は、無風の頻度が圧倒的に多くて
正規分布とは別の確率分布モデル(ワイブル分布だったか?)が必要らしい。
0020デフォルトの名無しさん
垢版 |
2024/04/19(金) 15:16:51.66ID:vMnQnyjD
スレチだとわからない知ったか馬鹿は消えろやウザイ
0021デフォルトの名無しさん
垢版 |
2024/04/19(金) 17:06:17.57ID:XpoxgUyK
前スレからの俺だけどこの流れはうーん違うね
VBAでそんな分析だの統計データから算出だのしたいわけじゃないのよね
そんなものは分析機器がやっててそれを終えたデータを出すの
ぶわーっとそのデータを振り分けたいのよ
excelで計算は特にさせなくてよいのさ
0022デフォルトの名無しさん
垢版 |
2024/04/19(金) 17:11:09.30ID:XpoxgUyK
桁の制御をFormat関数であとは平均を出す事くらいかなさせるのは
データをどう分岐させて振り分けるかで悩んでる
野望だけはかーなりでかいけどまだ勉強して覚えんといかん
あとパワークエリも脳から削除した
VBAだけで確実に出来るしやる
0023デフォルトの名無しさん
垢版 |
2024/04/20(土) 05:33:34.34ID:UJgnssg3
>>22
そろそろ消えろや
0024デフォルトの名無しさん
垢版 |
2024/04/20(土) 13:27:05.80ID:BnrM/VCY
VB6みたいにフォーム何枚も使ってると、ときどき実行中にフォームが行方不明になるな
0025デフォルトの名無しさん
垢版 |
2024/04/20(土) 13:32:01.35ID:NSZ59JZm
さてかーなりでかい野望に向けて土日で少し構想練るか
AIに代わる時代がはよきて欲しいわ
ユーザーフォームをいかにカッコ良く使いやすく作るかが真骨頂だよな
0026デフォルトの名無しさん
垢版 |
2024/04/20(土) 14:02:51.14ID:mzDz24SU
>>25
まだ野望とか勘違いしてんのかよ
進歩すること拒絶したんだから、振り分け程度の初心者システムでつつましくIT土方しときなさい
それがあなたに相応しい
0027デフォルトの名無しさん
垢版 |
2024/04/20(土) 14:48:52.38ID:e/oyxs7a
統合失調症なんだろ
0028デフォルトの名無しさん
垢版 |
2024/04/20(土) 15:13:11.39ID:NSZ59JZm
ちよっと構想がまとまったかな
とりあえずざっくり叩き台作ってくか
別件で動画編集もせなあかんけどVBAのが道のりが遠い
早くAIが進化して仕事を楽にしてほしいもんよ
0029デフォルトの名無しさん
垢版 |
2024/04/20(土) 15:32:25.92ID:7mgwhaPd
例の日本語ワープロが使えることが自慢だった零細企業の馬鹿かな
0030デフォルトの名無しさん
垢版 |
2024/04/20(土) 16:47:40.35ID:NSZ59JZm
そんなのが未だにいるんだな
転職も選択肢に入れるといいぞ
かなり面白い夢をこっそり企んでたけど構想が現実味を帯びてきたわ
こりゃパワークエリ不要だった
0031デフォルトの名無しさん
垢版 |
2024/04/21(日) 00:27:05.70ID:2XxVlukc
>>28
自己承認欲求が強いだけの無能な老害は消えろや
0032デフォルトの名無しさん
垢版 |
2024/04/21(日) 00:58:03.73ID:tbKn79wc
仕事さきからもらったエクセルファイルに
=_txc2(D3)
みたいな文字列計算するぽい関数入ってたんだけどマクロファイルついてきてなかったんで
似たようなマクロ_txc2()を作ろうとしたんだけど_始まりの命名できなくて詰みました
この_はなんなんですか
0033デフォルトの名無しさん
垢版 |
2024/04/21(日) 02:14:57.02ID:nwOboDTh
アドインとかかな…
VBEでF2、オブジェクトブラウザで検索したらどうだろ
0034デフォルトの名無しさん
垢版 |
2024/04/21(日) 05:10:12.10ID:db1CkQOk
「名前の管理」で定義されてない?
Lambda関数て作ってる可能性が。
0035デフォルトの名無しさん
垢版 |
2024/04/25(木) 07:27:04.00ID:h3NMyQeJ
>>32
VBAでなければ前にアンダーバーが付いているのはスコープがモジュール内の変数を指すことが多いよ。
VBAの場合、変数宣言の接頭にアンダーバーを付けるとコンパイルエラーになるので、自分の場合はアンダーバーの前にモジュールを表す意味で「m」をくっつけてる。
0036デフォルトの名無しさん
垢版 |
2024/04/25(木) 23:27:12.69ID:GqeA39Cp
VB(VBA)の慣習では、アンダーバー始まりは非表示のメンバー
オブジェクトブラウザで非表示のメンバ表示させると結構ある

ただ、VBAでは定義できないっぽいな
レスを投稿する


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