!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑同じ内容を2行貼り付けるナリ
ExcelのVBAに関する質問スレナリ
コード書き込みや作成依頼もOKナリ
※前スレ
Excel VBA 質問スレ Part73
https://mevius.5ch.net/test/read.cgi/tech/1631485799/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
Excel VBA 質問スレ Part74
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ d3fd-v8OD)
2021/12/20(月) 01:40:59.22ID:jnlr9GaR0720デフォルトの名無しさん (ワッチョイ a563-ntHq)
2022/01/28(金) 14:10:37.46ID:pNi2eyZM0 集計なら式使わずに素直にVBAで処理すれば?
721デフォルトの名無しさん (ワッチョイ 7d01-+o4x)
2022/01/28(金) 15:01:21.24ID:EweXC9jR0 >>719
ありがとう、それも問題なくいけました。
ありがとう、それも問題なくいけました。
722デフォルトの名無しさん (ワッチョイ f1ce-Xc5L)
2022/01/28(金) 15:16:30.86ID:6Z68BDtw0 >>721
1K未満の単位の付かない数値に対応したやつ
=LET(u,RIGHT(A1,1),p,SEARCH(u,"kmg"),IFERROR(LEFT(A1,LEN(A1)-1)*1024^p,A1))
1K未満の単位の付かない数値に対応したやつ
=LET(u,RIGHT(A1,1),p,SEARCH(u,"kmg"),IFERROR(LEFT(A1,LEN(A1)-1)*1024^p,A1))
723デフォルトの名無しさん (ワッチョイ 7d01-+o4x)
2022/01/28(金) 15:34:49.10ID:EweXC9jR0 色々ありがとう。使わせていただきます。
724デフォルトの名無しさん (ワッチョイ ea4f-stl2)
2022/01/28(金) 16:00:55.15ID:Pw9WEPs80 >>723
スピードを求めるならVBAでやった方がいい。
基本、VBAよりCELLに入れた数式の方が計算早いけど、
値を設定するたび再計算が走るのでは当然遅くなる。
単位をRightの1文字切り取って使うかInStrRevで1文字切り取って使うかは自由だし、
数値部分も最後のひと文字を抜いて数値変換する方法はどうにでもなるはずだから、
後は切り取った単位で冪乗計算の乗数を変えてあげれば簡単に行けるはず。
スピードを求めるならVBAでやった方がいい。
基本、VBAよりCELLに入れた数式の方が計算早いけど、
値を設定するたび再計算が走るのでは当然遅くなる。
単位をRightの1文字切り取って使うかInStrRevで1文字切り取って使うかは自由だし、
数値部分も最後のひと文字を抜いて数値変換する方法はどうにでもなるはずだから、
後は切り取った単位で冪乗計算の乗数を変えてあげれば簡単に行けるはず。
725デフォルトの名無しさん (ワッチョイ a95f-4IfY)
2022/01/28(金) 16:07:42.05ID:eEIZm5jJ0 膨大な行数になるようなら
関数よりマクロの方が断然軽い。
マクロの記録で瞬間でできるし。
関数よりマクロの方が断然軽い。
マクロの記録で瞬間でできるし。
726デフォルトの名無しさん (ワッチョイ a95f-4IfY)
2022/01/28(金) 16:08:26.59ID:eEIZm5jJ0 記述すら必要なし。
727デフォルトの名無しさん (スプッッ Sd12-Xc5L)
2022/01/28(金) 17:30:28.61ID:vX0FG/YWd マクロの記録で瞬間て、どうやるの?
728デフォルトの名無しさん (ワッチョイ f1a6-bU36)
2022/01/28(金) 17:31:33.84ID:MK2zcruJ0 一瞬で
729デフォルトの名無しさん (ドコグロ MMae-YJKT)
2022/01/28(金) 17:35:47.36ID:sJpZ8snBM この程度なら関数の方が速いと思うぞ
マルチスレッドで動くし
再計算も変化したセルに関連するところしかやらないから問題にはならないと思う
マルチスレッドで動くし
再計算も変化したセルに関連するところしかやらないから問題にはならないと思う
730デフォルトの名無しさん (スップ Sdea-dw97)
2022/01/28(金) 17:36:25.47ID:u6dzd5iJd ここはVBAスレだから質問はスレチだけどみんな優しいね
731デフォルトの名無しさん (ワッチョイ 66da-Xc5L)
2022/01/28(金) 17:49:38.97ID:qJef3P+M0732デフォルトの名無しさん (ドコグロ MMae-YJKT)
2022/01/28(金) 17:57:01.02ID:sJpZ8snBM > ここはVBAスレだから(計算式の)質問はスレチだけどみんな優しいね
733デフォルトの名無しさん (ワッチョイ 668e-ltXr)
2022/01/28(金) 18:14:34.37ID:ZcQb+fCA0 >>714
こんな奴に作業を任せるとかそもそも間違えている
こんな奴に作業を任せるとかそもそも間違えている
734デフォルトの名無しさん (ワッチョイ 792f-Cnlt)
2022/01/28(金) 18:21:53.88ID:np+yf06a0 今のエクセルの計算式は基本マルチスレッドでやるから、VBAでちまちまやるよりは早いだろうけど
このスレ的にはVBAで関数作るんが正解じゃないかと思った
で、ふと思ったが、VBAの関数をワークシートの計算式で使ったら、シングルスレッドで処理されるのかな
このスレ的にはVBAで関数作るんが正解じゃないかと思った
で、ふと思ったが、VBAの関数をワークシートの計算式で使ったら、シングルスレッドで処理されるのかな
735デフォルトの名無しさん (ワッチョイ a5d0-26/q)
2022/01/28(金) 18:58:00.84ID:Qmj8/oz70 >>711
どうしても「そのテーブルのフィルタソート機能を使用した」時点を起点に処理を始めなければならないとすれば、
Worksheet_SelectionChangeで、その特定のテーブルの特定の列を走査して昇順または降順にデータが並んでいれば「フィルタソート機能を使った」と判定する、ぐらいしか思いつかない
たまたまソートする前にデータが整列してしまっていた場合や処理が完了した後に再度処理が走ってしまうので、どこかにフラグを作って管理する必要もあると思うけど
あと、ソートする列に数値と文字列やブール値などが混在している場合も判定に注意が必要かと思う
どうしても「そのテーブルのフィルタソート機能を使用した」時点を起点に処理を始めなければならないとすれば、
Worksheet_SelectionChangeで、その特定のテーブルの特定の列を走査して昇順または降順にデータが並んでいれば「フィルタソート機能を使った」と判定する、ぐらいしか思いつかない
たまたまソートする前にデータが整列してしまっていた場合や処理が完了した後に再度処理が走ってしまうので、どこかにフラグを作って管理する必要もあると思うけど
あと、ソートする列に数値と文字列やブール値などが混在している場合も判定に注意が必要かと思う
736デフォルトの名無しさん (ワッチョイ ad68-Xc5L)
2022/01/28(金) 19:12:04.41ID:SUVzbVrJ0737デフォルトの名無しさん (ワッチョイ 11cc-21ac)
2022/01/28(金) 19:24:01.89ID:qlKzmgV90 7時30分から30分ずつ加算した時刻をコンボボックスに入れるやり方をおしえてください
For i = 1 To 19
UserForm1.ComboBox5.AddItem Format(DateAdd("n", 30, "7:30"), "h:mm")
Next i
For i = 1 To 19
UserForm1.ComboBox5.AddItem Format(DateAdd("n", 30, "7:30"), "h:mm")
Next i
738デフォルトの名無しさん (ドコグロ MMae-YJKT)
2022/01/28(金) 19:35:31.95ID:sJpZ8snBM >>734
> で、ふと思ったが、VBAの関数をワークシートの計算式で使ったら、シングルスレッドで処理されるのかな
ドキュメントは見たことないけどVBA部分はシングルだろうと思う
マルチで走るとグローバル変数で競合したとき困るし
> で、ふと思ったが、VBAの関数をワークシートの計算式で使ったら、シングルスレッドで処理されるのかな
ドキュメントは見たことないけどVBA部分はシングルだろうと思う
マルチで走るとグローバル変数で競合したとき困るし
739デフォルトの名無しさん (ワッチョイ 6ada-b3Fm)
2022/01/28(金) 19:40:10.55ID:GYI6WCqI0 VBA専用だけどExcel全般もOK
Excel板と仲悪い理由だけは分かった。
Excel板と仲悪い理由だけは分かった。
740デフォルトの名無しさん (ドコグロ MMae-YJKT)
2022/01/28(金) 19:41:52.43ID:sJpZ8snBM >>737
Dim T As Date
T = TimeSerial(7, 30, 0)
For i = 1 To 19
UserForm1.ComboBox5.AddItem Format(T, "h:mm")
T = DateAdd("n", 30, T)
Next i
Dim T As Date
T = TimeSerial(7, 30, 0)
For i = 1 To 19
UserForm1.ComboBox5.AddItem Format(T, "h:mm")
T = DateAdd("n", 30, T)
Next i
741デフォルトの名無しさん (スフッ Sd0a-bU36)
2022/01/28(金) 19:55:14.07ID:PEhFKy76d power queryと変数定義関数で、VBA使わずともかなりのことができるようになったよね
ローコードツールみたいだなと思う
ローコードツールみたいだなと思う
742デフォルトの名無しさん (ドコグロ MMae-YJKT)
2022/01/28(金) 20:01:26.98ID:XaG/+jlyM >>735
> Worksheet_SelectionChangeで、その特定のテーブルの特定の列を走査して昇順または降順にデータが並んでいれば「フィルタソート機能を使った」と判定する、ぐらいしか思いつかない
そんなことしなくてもWorkSheet.AutoFilterMode見て、WorkSheet.AutoFilter見たらいいだけ
> Worksheet_SelectionChangeで、その特定のテーブルの特定の列を走査して昇順または降順にデータが並んでいれば「フィルタソート機能を使った」と判定する、ぐらいしか思いつかない
そんなことしなくてもWorkSheet.AutoFilterMode見て、WorkSheet.AutoFilter見たらいいだけ
744デフォルトの名無しさん (ワッチョイ a5d0-26/q)
2022/01/28(金) 21:49:05.63ID:Qmj8/oz70 >>742
テーブルらしいので、WorksheetじゃなくてListObjectを見ないと判別できない
あと少なくとも自分には、AutoFilterにはフィルタソートをかけたかどうかを判別できるものが見つけられなかった
(フィルタソートしてもAutoFilter.FilterModeはFalse)
もし環境で動作が異なるのならごめんなさい
テーブルらしいので、WorksheetじゃなくてListObjectを見ないと判別できない
あと少なくとも自分には、AutoFilterにはフィルタソートをかけたかどうかを判別できるものが見つけられなかった
(フィルタソートしてもAutoFilter.FilterModeはFalse)
もし環境で動作が異なるのならごめんなさい
745デフォルトの名無しさん (ドコグロ MMae-YJKT)
2022/01/28(金) 22:21:03.74ID:0dNIFpO5M >>744
> テーブルらしいので、WorksheetじゃなくてListObjectを見ないと判別できない
ああ、そりゃすまん
> あと少なくとも自分には、AutoFilterにはフィルタソートをかけたかどうかを判別できるものが見つけられなかった
手元に環境ないから試せないけど
ListObjects(...).AutoFilter.Filters(...).On
じゃねーの?
> テーブルらしいので、WorksheetじゃなくてListObjectを見ないと判別できない
ああ、そりゃすまん
> あと少なくとも自分には、AutoFilterにはフィルタソートをかけたかどうかを判別できるものが見つけられなかった
手元に環境ないから試せないけど
ListObjects(...).AutoFilter.Filters(...).On
じゃねーの?
746デフォルトの名無しさん (ワッチョイ 3a3d-viSv)
2022/01/29(土) 00:40:00.86ID:d67hOlZf0 図書館に「はじめてのPower Automate Desktop」ていう本があったので借りてみたんだけどよ。
VBAでは10-20行ぐらいのエクセルの処理を、40ページぐらいかけて説明してたわ。
やってることは、VBAでやるコマンドをGUI操作でやってるような感じ。
どう考えても、VBAより簡単とは思えんしむしろVBAのほうが簡単じゃねーの?
VBAでは10-20行ぐらいのエクセルの処理を、40ページぐらいかけて説明してたわ。
やってることは、VBAでやるコマンドをGUI操作でやってるような感じ。
どう考えても、VBAより簡単とは思えんしむしろVBAのほうが簡単じゃねーの?
747デフォルトの名無しさん (スッップ Sd0a-7m15)
2022/01/29(土) 02:38:30.78ID:wvbeuCX/d >>746
馬鹿には違いがわからんだけだろ
馬鹿には違いがわからんだけだろ
748デフォルトの名無しさん (ワッチョイ 662c-Bf/t)
2022/01/29(土) 06:07:15.34ID:S/AYuT160 AWS など、Linux は逆。
GUIを排除して、コード化する。IaC(Infrastructure as Code)
AWSのGUIで設定したら、人によって間違うから、
どのボタンを押すなど、ソースコードで書いて、Terraform で実行する
これなら、Terraformのコードをサーバーへ転送して、実行するだけで環境構築できる
GUIを排除して、コード化する。IaC(Infrastructure as Code)
AWSのGUIで設定したら、人によって間違うから、
どのボタンを押すなど、ソースコードで書いて、Terraform で実行する
これなら、Terraformのコードをサーバーへ転送して、実行するだけで環境構築できる
749デフォルトの名無しさん (ワッチョイ a95f-4IfY)
2022/01/29(土) 06:12:15.60ID:nI5CwbIZ0 いや…VBA (VB6)を作った人は、相当優秀やな
昔、VB6 でフリーウェア作ったり、楽しかったわ…
昔、VB6 でフリーウェア作ったり、楽しかったわ…
750デフォルトの名無しさん (ワッチョイ 0a2e-LlB6)
2022/01/29(土) 07:43:57.70ID:p3H2eYK50 >>746
まあ、コードがわからん人(わからん人が使えるとは言ってない)向けだからな。
会社で色々ガチガチに制限されてるけど、そこだけはオッケーとかだったら使うしかないじゃない?そういう人向けだと思うよ。
Power Automateはまだサーバーが勝手に動いてくれるからマシだけど、Desktopはホント用途がわからん。
まあ、コードがわからん人(わからん人が使えるとは言ってない)向けだからな。
会社で色々ガチガチに制限されてるけど、そこだけはオッケーとかだったら使うしかないじゃない?そういう人向けだと思うよ。
Power Automateはまだサーバーが勝手に動いてくれるからマシだけど、Desktopはホント用途がわからん。
751デフォルトの名無しさん (ワッチョイ 6ada-b3Fm)
2022/01/29(土) 07:56:58.17ID:u7cBLx/b0 他言語のプログラマーからは下に見られるVBA
なぜ差別される?
なぜ差別される?
752デフォルトの名無しさん (ラクッペペ MM3e-KkJC)
2022/01/29(土) 08:31:49.58ID:vQXkhP0VM 中途半端に自分の知識を誇示して周囲を見下すやつが多いから
職場や上司を叩いて自己満足に浸るレスがこのスレでも目立つ
職場や上司を叩いて自己満足に浸るレスがこのスレでも目立つ
753デフォルトの名無しさん (ワッチョイ ea3e-81nj)
2022/01/29(土) 08:56:48.05ID:mMYfjebB0 起動しているedgeやIEで開いているページから文字を取り出したいのですがどうしたらいいでしょうか?
もしくは起動しているページからワンクリックで文字を取り出しExcelに貼り付ける様な方法はありますか?
もしくは起動しているページからワンクリックで文字を取り出しExcelに貼り付ける様な方法はありますか?
754デフォルトの名無しさん (ワッチョイ 0a2e-LlB6)
2022/01/29(土) 09:01:58.47ID:p3H2eYK50 RPAみたいに世間の認知も高いわけじゃない、
プログラムほど難しいことやってるように見えない、
そのくせ仕事は手抜きしてるように見える、
聞いてもよく分からないことしか言わない、
知らない人からみたらこんな感じだからじゃない?
プログラムほど難しいことやってるように見えない、
そのくせ仕事は手抜きしてるように見える、
聞いてもよく分からないことしか言わない、
知らない人からみたらこんな感じだからじゃない?
755デフォルトの名無しさん (ワッチョイ ea4f-stl2)
2022/01/29(土) 09:41:15.24ID:D0pOsND50 >>751
理由は色々あると思う。
名前がVisual Basic for Applications というくらいEXCELとかACCESSとかのMicrosoft Officeに特化していて
実際のシステムを構築するのには不向きであること。
間口が広いので初心者向きでもあり、それが逆にどんな人でもちょっと勉強すれば組めてしまうイメージがあること。
フレームワークの知識が皆無でも普通に組めてしまうこと。
VB.Netですら消えかかってるこの時代にあまりに旧態依然とした言語であること。
ちょろっと何かを組むには非常に良い言語なんだけどね。俺もVBAでシステム組めって言われたら「え・・・」ってなると思う。
理由は色々あると思う。
名前がVisual Basic for Applications というくらいEXCELとかACCESSとかのMicrosoft Officeに特化していて
実際のシステムを構築するのには不向きであること。
間口が広いので初心者向きでもあり、それが逆にどんな人でもちょっと勉強すれば組めてしまうイメージがあること。
フレームワークの知識が皆無でも普通に組めてしまうこと。
VB.Netですら消えかかってるこの時代にあまりに旧態依然とした言語であること。
ちょろっと何かを組むには非常に良い言語なんだけどね。俺もVBAでシステム組めって言われたら「え・・・」ってなると思う。
756デフォルトの名無しさん (ワッチョイ 6a42-6J+F)
2022/01/29(土) 09:47:43.70ID:UwALgNeL0 そもそもVB自体が下に見られているからじゃないかな
知らんけど
知らんけど
757デフォルトの名無しさん (ワッチョイ ad68-Xc5L)
2022/01/29(土) 09:54:07.85ID:OyQV2dPc0 >751
覚える事が信じられないぐらい少なく、誰でも使えるから
変数とif、for辺り知ってればほとんどの場合に対応できる
若干とっつきにくいのがset程度
更に相当テキトーに書いても他へ影響し辛い
どれも実務上は長所だけど、
他の言語を知ってると「なにこれ?」ってなるのはわかる。なんというかおもちゃっぽい
覚える事が信じられないぐらい少なく、誰でも使えるから
変数とif、for辺り知ってればほとんどの場合に対応できる
若干とっつきにくいのがset程度
更に相当テキトーに書いても他へ影響し辛い
どれも実務上は長所だけど、
他の言語を知ってると「なにこれ?」ってなるのはわかる。なんというかおもちゃっぽい
758デフォルトの名無しさん (ワッチョイ a5d0-26/q)
2022/01/29(土) 10:17:37.26ID:M8ea68f50 >>745
自分の環境だと、普通のフィルタをかけた状態ならそれで拾えるけど、フィルタのソートを行った状態は拾えないので、やりたくないけどどうしてもやるなら列のデータをなめるしかないのかなと
>>751
元々、Visual Basic自体がBASICという、学校でプログラミングの導入として教えるような簡易なプログラミング言語から派生したものだから、他の言語より低く見られていた
更にそこから派生したVBA(マクロ)やVBS(スクリプト)なんかはより低く見られている
まぁ実際に、図体の重たいプログラムでは手が届きにくい部分を補完する孫の手的な使い方をするのが主流なので、穴埋めや間に合わせ的な位置付けに見られているからだと思う
自分の環境だと、普通のフィルタをかけた状態ならそれで拾えるけど、フィルタのソートを行った状態は拾えないので、やりたくないけどどうしてもやるなら列のデータをなめるしかないのかなと
>>751
元々、Visual Basic自体がBASICという、学校でプログラミングの導入として教えるような簡易なプログラミング言語から派生したものだから、他の言語より低く見られていた
更にそこから派生したVBA(マクロ)やVBS(スクリプト)なんかはより低く見られている
まぁ実際に、図体の重たいプログラムでは手が届きにくい部分を補完する孫の手的な使い方をするのが主流なので、穴埋めや間に合わせ的な位置付けに見られているからだと思う
759デフォルトの名無しさん (ドコグロ MMae-YJKT)
2022/01/29(土) 11:04:25.26ID:1pI7yMTXM760デフォルトの名無しさん (ワッチョイ a6da-dw97)
2022/01/29(土) 11:05:21.11ID:bDLL2+/00761デフォルトの名無しさん (ワッチョイ 3d56-6WVI)
2022/01/29(土) 11:13:37.04ID:M50L9SrL0 >>757
> 他の言語を知ってると「なにこれ?」ってなるのはわかる。なんというかおもちゃっぽい
なんとなく納得できる表現だな。
C・C++・C#・JAVA・Rustとかの、かちっとしたのが当然だと思ってると面食らう。
特に Variant。まあ、最近はコンパイラ系に逆輸入されてるけど。
> 他の言語を知ってると「なにこれ?」ってなるのはわかる。なんというかおもちゃっぽい
なんとなく納得できる表現だな。
C・C++・C#・JAVA・Rustとかの、かちっとしたのが当然だと思ってると面食らう。
特に Variant。まあ、最近はコンパイラ系に逆輸入されてるけど。
762デフォルトの名無しさん (ワッチョイ 3d56-6WVI)
2022/01/29(土) 11:15:31.30ID:M50L9SrL0 あ。馬鹿にしてるわけではないよ。便利だと思う。
ただ、コンストラクタ引数と継承は入れてほしかった。
ただ、コンストラクタ引数と継承は入れてほしかった。
763デフォルトの名無しさん (オッペケ Srbd-T/LI)
2022/01/29(土) 11:28:56.70ID:tQGwfe1Lr VBAが言語として下に見られてるのかは知らんが書いてるやつの水準は他言語より圧倒的に下だよ
変数の型指定しない、withつかわない、まとめられる処理をまとめずにコピペし大量のモジュールを作る、配列とか使わないでセルを一回一回読み書き
こんなコードが会社のエクセルにはたくさんある
そしてそれが神マクロと崇め奉られてるのホントゴミ
変数の型指定しない、withつかわない、まとめられる処理をまとめずにコピペし大量のモジュールを作る、配列とか使わないでセルを一回一回読み書き
こんなコードが会社のエクセルにはたくさんある
そしてそれが神マクロと崇め奉られてるのホントゴミ
764デフォルトの名無しさん (ドコグロ MMae-YJKT)
2022/01/29(土) 11:44:30.01ID:PUyOyrFtM765デフォルトの名無しさん (ワッチョイ f1ce-Xc5L)
2022/01/29(土) 12:02:30.08ID:ZRWUeJUN0 結果がすべて
仕事を終わらせたやつが評価されるんであって、どんな方法を使ったか、きれいに書いたかどうかなんて普通は問われない
仕事を終わらせたやつが評価されるんであって、どんな方法を使ったか、きれいに書いたかどうかなんて普通は問われない
766デフォルトの名無しさん (ワッチョイ 6a7c-lJmG)
2022/01/29(土) 12:10:51.21ID:L/C5gyxS0767デフォルトの名無しさん (ワッチョイ a95f-4IfY)
2022/01/29(土) 12:12:26.42ID:nI5CwbIZ0 何かを見下したい、マウントを取りたいのは、
愚か者の本能であって、理由は後付け。
VBA がハイコストパフォーマンスで
ある程度のシステムを構築できてしまう
便利なツールであることには変わりない。
頭の悪い人間ほど、意味のない格付けをしたがる。
愚か者の本能であって、理由は後付け。
VBA がハイコストパフォーマンスで
ある程度のシステムを構築できてしまう
便利なツールであることには変わりない。
頭の悪い人間ほど、意味のない格付けをしたがる。
768デフォルトの名無しさん (ワッチョイ a95f-4IfY)
2022/01/29(土) 12:22:38.03ID:nI5CwbIZ0 Windows環境で、
なんらかの要件を実現する方法の選定として
導入コストを考えたら、DOSバッチでも
PowerShellでも、JavaScriptでも、WSHでも
既存のリソースのみで実現できる方が良いに決まってる。
特に日本人の思考は、合理性を軽視して、見てくれや
くだらない感情で判断することが多いので、
開発のプロジェクトでも時間とカネのコスト管理ができてない
愚かな企業が多い。
なんらかの要件を実現する方法の選定として
導入コストを考えたら、DOSバッチでも
PowerShellでも、JavaScriptでも、WSHでも
既存のリソースのみで実現できる方が良いに決まってる。
特に日本人の思考は、合理性を軽視して、見てくれや
くだらない感情で判断することが多いので、
開発のプロジェクトでも時間とカネのコスト管理ができてない
愚かな企業が多い。
769デフォルトの名無しさん (ドコグロ MMae-YJKT)
2022/01/29(土) 12:23:55.26ID:hiZAoffAM >>765
そういう書き捨ての仕事もあるし、連綿と続く仕事もある
そういう書き捨ての仕事もあるし、連綿と続く仕事もある
770デフォルトの名無しさん (ワッチョイ a95f-4IfY)
2022/01/29(土) 12:27:08.84ID:nI5CwbIZ0 結果として、他国からバカにされてる
日本の生産性の低さに繋がっている
あらゆる分野で、開発スピードは、
圧倒的に米欧・中華が優っている
日本の生産性の低さに繋がっている
あらゆる分野で、開発スピードは、
圧倒的に米欧・中華が優っている
771デフォルトの名無しさん (ワッチョイ 668e-ltXr)
2022/01/29(土) 12:29:20.03ID:iTemfgLK0 >>768
例の馬鹿か
例の馬鹿か
772デフォルトの名無しさん (オッペケ Srbd-T/LI)
2022/01/29(土) 12:34:16.18ID:Q0NPbY74r773デフォルトの名無しさん (オッペケ Srbd-4IfY)
2022/01/29(土) 12:43:35.90ID:28WRDRfRr まあ正直、要件定義〜設計までの上流工程の人間からすると
言語は何でも良いんだけどね。
こだわるのはコーディングフェーズ以下の下流エンジニアであって。
言語は何でも良いんだけどね。
こだわるのはコーディングフェーズ以下の下流エンジニアであって。
774デフォルトの名無しさん (ワッチョイ 6ada-b3Fm)
2022/01/29(土) 14:49:20.34ID:u7cBLx/b0 関数が得意な人はなんでも関数で片付ける、マクロが得意な人はなんでもマクロでやろうとする傾向があると田中氏が言っていたな講演会で。
バランス良く使える人こそ真のエキスパートだとも。
バランス良く使える人こそ真のエキスパートだとも。
775デフォルトの名無しさん (ブーイモ MMc9-lJmG)
2022/01/29(土) 15:14:16.94ID:YNpwCmNLM776デフォルトの名無しさん (ワッチョイ 11cc-21ac)
2022/01/29(土) 15:41:11.14ID:D/yb4xS+0 指定した範囲にそれぞれ外枠線を引きたいのですが、量が多くなると時間がかかるのでUnionを使いたいのですが、
Dim rng As Range, i As Long
Set rng = Range("B2:B3")
Set rng = Union(rng, Range("C2:C3"))
For i = 4 To 50 Step 2
Set rng = Union(rng, Range("B" & i & ":B" & i + 1))
Set rng = Union(rng, Range("C" & i & ":C" & i + 1))
Next i
rng.BorderAround Weight:=xlThin
だと、Range("B2:C51").BorderAround Weight:=xlThin と同じになってしまいます。
短い時間で、それぞれの範囲に外枠線を引く方法を教えてください
Dim rng As Range, i As Long
Set rng = Range("B2:B3")
Set rng = Union(rng, Range("C2:C3"))
For i = 4 To 50 Step 2
Set rng = Union(rng, Range("B" & i & ":B" & i + 1))
Set rng = Union(rng, Range("C" & i & ":C" & i + 1))
Next i
rng.BorderAround Weight:=xlThin
だと、Range("B2:C51").BorderAround Weight:=xlThin と同じになってしまいます。
短い時間で、それぞれの範囲に外枠線を引く方法を教えてください
777デフォルトの名無しさん (ワッチョイ a563-Bf/t)
2022/01/29(土) 15:45:53.96ID:W/oxWoyf0778デフォルトの名無しさん (ワッチョイ a5b0-QLU7)
2022/01/29(土) 15:52:44.84ID:MAc7BERw0 >>761
JavaでもObjectになんでも突っ込めるじゃん
JavaでもObjectになんでも突っ込めるじゃん
779デフォルトの名無しさん (ワッチョイ 6ada-b3Fm)
2022/01/29(土) 16:14:17.19ID:u7cBLx/b0 マクロ書くより手作業でやった方が早いのにわざわざマクロでやる人ばかりとも言っていたな。
なるほどなと納得する講演会だったね。
なるほどなと納得する講演会だったね。
780デフォルトの名無しさん (ワッチョイ 6a7c-lJmG)
2022/01/29(土) 16:34:34.13ID:L/C5gyxS0 今知ったんだけどFalseってフォルスって読むんだな
考えてみれば失敗じゃなくて偽りだもんな
本職じゃなくて良かったわ〜
考えてみれば失敗じゃなくて偽りだもんな
本職じゃなくて良かったわ〜
781デフォルトの名無しさん (オッペケ Srbd-4IfY)
2022/01/29(土) 16:35:06.88ID:RDGmPxZCr なんで Cells を使わず、わざわざ
Range を使うのが多数派なんだろ。
メリットないじゃん。意味わからん。
Range を使うのが多数派なんだろ。
メリットないじゃん。意味わからん。
782デフォルトの名無しさん (ワッチョイ ea4f-stl2)
2022/01/29(土) 16:40:41.52ID:D0pOsND50783デフォルトの名無しさん (ブーイモ MM3e-QqBd)
2022/01/29(土) 16:41:42.31ID:fC9nxr54M だってマクロ書きたいんだもん
784デフォルトの名無しさん (スッップ Sd0a-7nMi)
2022/01/29(土) 16:49:23.58ID:wL4gsmFrd785デフォルトの名無しさん (ドコグロ MMae-YJKT)
2022/01/29(土) 17:04:38.36ID:fQ9LbNHBM >>780
失敗は Fail だもんな
失敗は Fail だもんな
786デフォルトの名無しさん (ワッチョイ 6a7c-lJmG)
2022/01/29(土) 17:04:52.88ID:L/C5gyxS0 俺はcellsだよ、座標として捉えてるから数値との親和性が高く感じる
787デフォルトの名無しさん (ワッチョイ 6a7c-lJmG)
2022/01/29(土) 17:06:06.65ID:L/C5gyxS0 >>785
そやねん、フェイルセーフっていうからその延長で思い込んでしまってたみたい
そやねん、フェイルセーフっていうからその延長で思い込んでしまってたみたい
788デフォルトの名無しさん (ドコグロ MMae-YJKT)
2022/01/29(土) 17:06:09.58ID:fQ9LbNHBM >>781
極端な例だけど Cells(100, 100) がどのセルを指してるのかすぐにわかるなら…
極端な例だけど Cells(100, 100) がどのセルを指してるのかすぐにわかるなら…
789デフォルトの名無しさん (ワッチョイ 6a7c-lJmG)
2022/01/29(土) 17:09:18.89ID:L/C5gyxS0790デフォルトの名無しさん (ワッチョイ ad68-Xc5L)
2022/01/29(土) 17:16:34.10ID:OyQV2dPc0 日本はA1形式なのでどっちにしても分かりづらい
歴史的経緯で今更どうしようもないとは言え、残念すぎる
歴史的経緯で今更どうしようもないとは言え、残念すぎる
791デフォルトの名無しさん (ドコグロ MMae-YJKT)
2022/01/29(土) 17:29:33.23ID:36YHaPQ9M792デフォルトの名無しさん (ワッチョイ 6ada-b3Fm)
2022/01/29(土) 17:59:18.61ID:u7cBLx/b0 >>782
うん。自分の耳が腐っていなければ確かにそれを強調していたように聞こえたよ。。
とにかく後任者の事を第一に考えようと。
あと、速度改善するマクロを書いても後任者が理解できなければそのマクロは結果遅いマクロとも。
一理あるなと思った。
かなり前の話だからうろ覚えごめんなさい。
うん。自分の耳が腐っていなければ確かにそれを強調していたように聞こえたよ。。
とにかく後任者の事を第一に考えようと。
あと、速度改善するマクロを書いても後任者が理解できなければそのマクロは結果遅いマクロとも。
一理あるなと思った。
かなり前の話だからうろ覚えごめんなさい。
793デフォルトの名無しさん (ドコグロ MMae-YJKT)
2022/01/29(土) 18:07:28.04ID:oYmiRtJxM 何が正解かはケースバイケースだしね
LETとかLAMBDAのサポートで正解変わったりするし
LETとかLAMBDAのサポートで正解変わったりするし
794デフォルトの名無しさん (ワッチョイ ea4f-stl2)
2022/01/29(土) 18:58:08.38ID:D0pOsND50 CellsとRangeなんて一長一短なんだから
状況に合わせて使い易い方、分かり易い方を使えばいい。
どうせ両方とも型はRangeだ。
状況に合わせて使い易い方、分かり易い方を使えばいい。
どうせ両方とも型はRangeだ。
795デフォルトの名無しさん (オッペケ Srbd-4IfY)
2022/01/29(土) 19:05:46.63ID:XZlmQtKVr 例えば、数万行の処理をループで回す場合とか
Range と Cells とでは、処理速度が全然違うのよ。
実際にやってみればわかる。
Range と Cells とでは、処理速度が全然違うのよ。
実際にやってみればわかる。
796デフォルトの名無しさん (ワッチョイ 6ada-b3Fm)
2022/01/29(土) 19:07:36.86ID:u7cBLx/b0 Range(A & i)みたいなコードをたまに見るけど、あまり良い書き方ではないと聞きましたよ
797デフォルトの名無しさん (ワッチョイ ea4f-stl2)
2022/01/29(土) 19:10:29.95ID:D0pOsND50798デフォルトの名無しさん (ワッチョイ 6ada-b3Fm)
2022/01/29(土) 19:13:25.82ID:u7cBLx/b0 いわゆる「マクロ入門書」とかにもそのような変な書き方がある。
教える側の立場にある人がそんな書き方してるのはちょっと
教える側の立場にある人がそんな書き方してるのはちょっと
799デフォルトの名無しさん (ドコグロ MMae-YJKT)
2022/01/29(土) 19:49:18.54ID:lAJromTAM >>797
Offset(), Resize() はセル結合を「考慮してくれる」からイマイチ使い辛い
Offset(), Resize() はセル結合を「考慮してくれる」からイマイチ使い辛い
800デフォルトの名無しさん (ワッチョイ a563-ntHq)
2022/01/29(土) 19:57:24.50ID:W/oxWoyf0 可読性と処理速度要件で変えるだけ
801デフォルトの名無しさん (ワッチョイ ad68-Xc5L)
2022/01/29(土) 20:51:43.39ID:OyQV2dPc0 >>795
100万ループさせてやっと数秒か
この程度の差なら速度は誤差では?
速度抜きにしてもrange("a1")って書き方はせんけど
Sub foo()
GetLocalTimeTest
For i = 1 To 1000000
'5秒
'bar = Range(Cells(1, 1), Cells(1, 1))
'2.8秒
'bar = Cells(1, 1)
'6.7秒
'bar = Range("a1")
Next
GetLocalTimeTest
End Sub
100万ループさせてやっと数秒か
この程度の差なら速度は誤差では?
速度抜きにしてもrange("a1")って書き方はせんけど
Sub foo()
GetLocalTimeTest
For i = 1 To 1000000
'5秒
'bar = Range(Cells(1, 1), Cells(1, 1))
'2.8秒
'bar = Cells(1, 1)
'6.7秒
'bar = Range("a1")
Next
GetLocalTimeTest
End Sub
802デフォルトの名無しさん (ワッチョイ a95f-SV2r)
2022/01/29(土) 20:55:44.71ID:2z3KoE650 setは?
803デフォルトの名無しさん (ワッチョイ 6ada-b3Fm)
2022/01/29(土) 21:16:18.07ID:u7cBLx/b0804デフォルトの名無しさん (ワッチョイ 39e6-KfKj)
2022/01/29(土) 21:18:02.94ID:j5q7lOJ70 >>790
いろは順が良かったってか?
いろは順が良かったってか?
805デフォルトの名無しさん (ワッチョイ ad68-Xc5L)
2022/01/29(土) 21:19:19.33ID:zfCLVkWb0 学生大会ね
806デフォルトの名無しさん (ドコグロ MMae-YJKT)
2022/01/29(土) 21:24:22.79ID:1BTFtAsTM807デフォルトの名無しさん (スフッ Sd0a-IClH)
2022/01/29(土) 22:21:59.94ID:tNIxMt6Qd808デフォルトの名無しさん (スップ Sd0a-dw97)
2022/01/29(土) 22:38:28.21ID:FzjWUvLmd809デフォルトの名無しさん (ワッチョイ f1ce-Xc5L)
2022/01/29(土) 22:41:28.05ID:ZRWUeJUN0 ループ回すにはCellsのが書きやすい
810デフォルトの名無しさん (ドコグロ MMae-YJKT)
2022/01/29(土) 22:44:29.32ID:yRT1rOmgM811デフォルトの名無しさん (スップ Sd0a-dw97)
2022/01/29(土) 23:35:26.26ID:FzjWUvLmd 書き方が良くなかったね
自分が作ってる関数だと引数の使い方がRangeの方が汎用性が高い
自分が作ってる関数だと引数の使い方がRangeの方が汎用性が高い
812デフォルトの名無しさん (ワッチョイ 39e6-KfKj)
2022/01/29(土) 23:51:38.36ID:j5q7lOJ70 引数は文字列と言うことかな?
813デフォルトの名無しさん (ワッチョイ 3a00-Bf/t)
2022/01/30(日) 01:33:47.10ID:RkuzR5nc0 作成依頼もOKということで書き込みさせていたただきます。
現在開いているシートの名前で、特定の場所にCSV(コンマ区切り)の形式で保存したいです。
また、エクセルを開きっぱなしで別のプログラムにCSVを読み込ませ、その後データを書き換えてCSVを上書き出力、読み込ませ、データを書き換え…、の繰り返しをしたいのですが、エクセルを開いていると別のプログラムで読み込んだ時にエラーが出てしまうため、別のブックとして保存して閉じることができると嬉しいです。
VBAについての知識がほとんどないため、こういった情報で作成依頼していいものなのかわかりませんが、よろしくお願いします。
現在開いているシートの名前で、特定の場所にCSV(コンマ区切り)の形式で保存したいです。
また、エクセルを開きっぱなしで別のプログラムにCSVを読み込ませ、その後データを書き換えてCSVを上書き出力、読み込ませ、データを書き換え…、の繰り返しをしたいのですが、エクセルを開いていると別のプログラムで読み込んだ時にエラーが出てしまうため、別のブックとして保存して閉じることができると嬉しいです。
VBAについての知識がほとんどないため、こういった情報で作成依頼していいものなのかわかりませんが、よろしくお願いします。
814デフォルトの名無しさん (ワッチョイ f1ce-Xc5L)
2022/01/30(日) 02:59:23.74ID:MQJLXGaO0 >>813
Sub save_sheet_as_csv()
Dim this As Worksheet: Set this = ActiveSheet
Dim sheet_name As String: sheet_name = this.Name 'ワークシート名取得
Dim save_folder As String: save_folder = "c:\tmp\" '保存先フォルダ指定
Dim save_fullpath As String: save_fullpath = save_folder & sheet_name & ".csv"
this.SaveAs Filename:=save_fullpath, FileFormat:=xlCSV 'CSVで保存
End Sub
Sub save_sheet_as_csv()
Dim this As Worksheet: Set this = ActiveSheet
Dim sheet_name As String: sheet_name = this.Name 'ワークシート名取得
Dim save_folder As String: save_folder = "c:\tmp\" '保存先フォルダ指定
Dim save_fullpath As String: save_fullpath = save_folder & sheet_name & ".csv"
this.SaveAs Filename:=save_fullpath, FileFormat:=xlCSV 'CSVで保存
End Sub
815デフォルトの名無しさん (ワッチョイ 3a00-Bf/t)
2022/01/30(日) 03:34:13.23ID:RkuzR5nc0 >>814
ありがとうございます、試してみたところ、出力したCSVを別のプログラムで読み込もうとしたときに「別のプロセスで使用中のため開けません」とのエラーが出てしまいました。
私の使い方が悪いのかもしれませんが、アドバイスいただけるとありがたいです。
ありがとうございます、試してみたところ、出力したCSVを別のプログラムで読み込もうとしたときに「別のプロセスで使用中のため開けません」とのエラーが出てしまいました。
私の使い方が悪いのかもしれませんが、アドバイスいただけるとありがたいです。
816デフォルトの名無しさん (ワッチョイ f1ce-Xc5L)
2022/01/30(日) 03:54:54.88ID:MQJLXGaO0817デフォルトの名無しさん (ワッチョイ 3a00-Bf/t)
2022/01/30(日) 04:02:16.39ID:RkuzR5nc0 >>816
ありがとうございます、うまくできませんでした…。
ネットで拾ったものですが、これがやりたいことに近いかなと思うんですが、保存先の指定はどうすればいいでしょうか。
Application.DisplayAlerts = False 'Excelの警告を一時無視
ActiveSheet.Copy '新しいブックへコピー
ActiveWorkbook.SaveAs Filename:="book1.csv", FileFormat:=xlCSV, Local:=True 'CSVで保存。ファイル名は「book1.csv」。
Workbooks("book1.csv").Close 'book1.csvを閉じる
Application.DisplayAlerts = True
ありがとうございます、うまくできませんでした…。
ネットで拾ったものですが、これがやりたいことに近いかなと思うんですが、保存先の指定はどうすればいいでしょうか。
Application.DisplayAlerts = False 'Excelの警告を一時無視
ActiveSheet.Copy '新しいブックへコピー
ActiveWorkbook.SaveAs Filename:="book1.csv", FileFormat:=xlCSV, Local:=True 'CSVで保存。ファイル名は「book1.csv」。
Workbooks("book1.csv").Close 'book1.csvを閉じる
Application.DisplayAlerts = True
818デフォルトの名無しさん (ワッチョイ f1ce-Xc5L)
2022/01/30(日) 04:58:34.47ID:MQJLXGaO0819デフォルトの名無しさん (ワッチョイ a5d0-26/q)
2022/01/30(日) 07:43:58.44ID:q4Ohgw6D0 >>759
うちの環境だと、FilterオブジェクトにSortはないね
その代わり、ListObject.AutoFilter.Sort.SortFields.Countで検出できそうなのは見つけた
もしかしてこのへんバージョン毎に違ったりするのだろうか?
うちの環境だと、FilterオブジェクトにSortはないね
その代わり、ListObject.AutoFilter.Sort.SortFields.Countで検出できそうなのは見つけた
もしかしてこのへんバージョン毎に違ったりするのだろうか?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 空自機レーダー照射、音声データ公開 中国 ★3 [蚤の市★]
- 高市早苗首相、消費税減税に後ろ向き 足かせはレジシステム? 「責任ある積極財政」期待高いが [蚤の市★]
- 【YouTuber】バイク事故で入院のゆたぼん、振込で「お見舞金」募る [muffin★]
- 低所得層のマクドナルド離れが深刻に 広がる「ファストフード格差」の真相 米国 [少考さん★]
- 堀江貴文、キャッシュレス非対応の店にモヤッ 『PayPay』立ち上げの人物にまさかの直談判「現金決済しかできないんだけど…」 [冬月記者★]
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★7 [七波羅探題★]
- 中国がここまで過敏になるのは日本に前科があるから。盧溝橋、満州事変。ジャップの先制攻撃は挙げればキリがないけど [472617201]
- 『猟友会がクマ駆除を嫌がるなら潰すべき。職務を放棄するハンターから免許や銃を没収して罰金を取ろう』の声、ネットで上がる [932029429]
- 犬って顔くっつけて寝たがるよな
- 【悲報】JA「全然米が売れなくて倉庫を圧迫してる。助けて!」米卸売り業者「安売りしたら赤字になる…助けて!」 [802034645]
- ( ´・ω・` )もう寝るよ
- 神 vs 無 vs タイムマシン vs うんちっち
