Excel VBA 質問スレ Part51

レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん (スププ Sd4a-O827)
垢版 |
2017/11/08(水) 11:26:30.13ID:+KUB1/9hd

スレ立ての際は一行目に
!extend:checked:vvvvv:1000:512
と入れてスレ立てして下さい

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

※関連スレ
VBAなんでも質問スレ Part2
http://mevius.2ch.net/test/read.cgi/tech/1432173164/
Access VBA 質問スレ Part1
http://mevius.2ch.net/test/read.cgi/tech/1328536426/
Excel総合相談所 126
https://mevius.2ch.net/test/read.cgi/bsoft/1496487719/

※前スレ
Excel VBA 質問スレ Part50
http://mevius.2ch.net/test/read.cgi/tech/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
2018/01/22(月) 00:04:49.43ID:R+7srG110
>>937
空気読んでね
ここはテキスト処理の質問スレじゃなくて
Excel VBAの質問スレだから
2018/01/22(月) 01:20:01.78ID:pYe1Cwj70
そんなに時間が掛かるのなら、一旦データをエクスポートして、
データをテキスト処理してから、インポートして戻せば?

たかが、2万個のデータで、1時間は現実的ではない

そんなに時間が掛かっても、どうしても、VBA でやりたいのか?
2018/01/22(月) 01:43:29.00ID:zmIcszTc0
あくまでUnionを使った場合であって高速に処理する方法はいくらでもあるからなぁ。
それに仕事でVBA使う環境だと他社との協調も考えなきゃいけないからRubyインストールする方がよっぽど非現実的だし。

まぁ、たぶんおちょくってるつもりなんだろうけど、そもそもVBA以外の環境がないって前提のスレだから、
Rubyマンの煽りが煽りになっていないっていう・・・。
2018/01/22(月) 04:08:31.22ID:Xp9Ai2fT0
重複の削除はワークシートでやった方がてっとり早いと思う
2018/01/22(月) 04:38:17.99ID:AE7SVx7N0
>>940
> そもそもVBA以外の環境がないって前提のスレだから
そんな前提で質問に来る人もいるだろうけど、
「最適解」を求めている人が、とりあえずVBAだとどうなるか、と思って質問する場合もあるでしょ

だから、質問者が「全体にVBA以外はダメ」って制限をかけていない限りは、
上でも、ACCESSを進めている人もいたけど、実用面から考えた回答も質問者の利益になると思うんだけど
(質問者がそう思っていても、何も知らないからそう思ってるってパターンすらあり得るかな)
2018/01/22(月) 05:56:27.49ID:zmIcszTc0
>>942
Excel VBA質問スレでの「実用面」は、一般的な企業向けWindows PC(Office製品入り)で出来る事に制限されると思うけど。
それに質問者が明言した事以外は「出来ない」と考えておくのが常識だと思うね。

だいたい他の言語に興味があるなら、その言語のスレで質問すりゃいいわけだし、
どんな自己弁護をしたところで特定言語のスレで他言語の話をする理由にはならないよ。

せめて質問者に対してVBA以外の開発環境は無いか訊ね、Rubyが使えるという自発的な回答が得られた時に初めて、
Rubyスレに誘導して、そちらで話を展開すべきだね。
2018/01/22(月) 08:37:35.39ID:AE7SVx7N0
>>943
> それに質問者が明言した事以外は「出来ない」と考えておくのが常識だと思うね。
リアルでも、相手に聞きもせずに勝手にそんな縛りをかけて要件定義する人はいないと思うよ

> せめて質問者に対してVBA以外の開発環境は無いか訊ね、Rubyが使えるという自発的な回答が得られた時に初めて、
> Rubyスレに誘導して、そちらで話を展開すべきだね。
環境を聞くのは勿論ありだが、「○○だとより簡単にできるよ」ってこちらから言う事に何の問題があるのか?
今ある環境内で必ず実現する必要があるなら別だが、そうでない場合もよくあることでしょ

ま、いずれにせよ、何も聞かないうちに勝手に「○○に違いない」って決めつけるのは、
要件定義では一番しちゃいけないことだよ
2018/01/22(月) 10:06:54.55ID:zmIcszTc0
>>944
仕事している風を装いたいんだろうけど、明らかに経験が無いの丸出しなんだよな・・・。

そもそもVBAスレでRubyの話を出してくる事自体が問題なんだよ。
君が問題になっているのは要件定義の話ではなく開発環境の話だ。

明確な線引きをするなら、このスレではxlsmに記録し、特別な準備なしに実行できるものでなければ、何であれ許容範囲外だ。
2018/01/22(月) 10:12:50.46ID:JFwvghX1M
またそうやって明文化されてもいない自分ルールを展開していくー
2018/01/22(月) 10:23:32.81ID:zmIcszTc0
明文化されてはいないけど、過去から今までのスレでの反応を見る限りは、
だいたいxlsmファイル単体でマクロの実行が補完できるかどうかが拒絶反応の出る出ないを分けてるよ。

ただ個別にマクロが記録された二つ以上のファイルを連携させる場合の話もあるから「xlsmに記録し、準備なしに実行可能な」と定義しただけ。
押しつけるつもりはないけど、この定義で問題が無ければテンプレに加えてキチ避けしてほしいくらい。
2018/01/22(月) 11:30:49.09ID:r0T2WJT6a
>>929
ごめんscriptingRuntimeのやつ、の間違いだ
2018/01/22(月) 11:33:07.33ID:y0jssaARd
VBAをメインとして他言語も補助的に使う。
それなりにあると思う
2018/01/22(月) 15:12:56.07ID:EwN8a0pa0
同じ現象が起きるようにできるだけ簡単なコードを用意しました

まっさらなxlsmにUserForm1を挿入し、TextBox1とTextBox2を横に並べます
UserForm1モジュールに下記のようにコードを記述します

Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 39 Then
With TextBox2
.SetFocus
.SelStart = 0
End With
End If
End Sub

UserForm1を呼んだ後、TextBox2にabと記入します
このとき、TextBox1からTextBox2に矢印キー右でうつろうとするとaの前ではなくaとbの間にカーソルが来てしまいます。
どうすればaの前にカーソルが来るようになりますか?もちろんabは例示にすぎずいろんな文字列が入ります
よろしくお願いします
2018/01/22(月) 15:25:33.05ID:EwN8a0pa0
>>950ですけど、KeyCode=40、つまり矢印キー下にセッティングして
TextBox1から2に移ると頭にカーソルきますね
ということは、入力した矢印キー右がTextBox2に移ったあとも生きててその影響が出てるってことですかね
まぁ原因分かっても解決方法が分からないのですが
2018/01/22(月) 16:37:43.27ID:DgxtyBXU0
試していないけれど
With TextBox2 の前に
KeyCode = 0 を入れたらどう
2018/01/22(月) 17:07:09.72ID:+/nnDvsjM
>>949
VBAでは書きにくい or 実行速度がめちゃ遅い
かつ
その言語なら簡単に書ける or 実行速度が速い

ならありうると思う
なのでAccessとかADOならまだわかるけどRubyはないな
2018/01/22(月) 22:49:33.42ID:EwN8a0pa0
>>952
しゅごい・・・できました
ありがとうございました
2018/01/24(水) 10:46:16.37ID:QE61Ho6h0
。と。の間に入ってる文字を全部同じ文字に置換したい場合ってどうすればいいでしょうか?

。。       →。ccc。
。akok。    →。ccc。
。3293i9ia。  →。ccc。

みたいな感じです
2018/01/24(水) 11:16:56.30ID:QE61Ho6h0
すいません数式の中の。と。の間の文字を置換でした
2018/01/24(水) 12:30:55.33ID:4OtF4psx0
数式の中のってのがよくわかんないから実際の数式を書いてくれ
2018/01/24(水) 13:09:34.71ID:QE61Ho6h0
こういう事がやりたいって感じです
わかりづらくてすいません

=123456789(この9桁の数字はランダム) → =123ccc789
=123456789(この9桁の数字はランダム) → =12ccc3456789
2018/01/24(水) 13:24:33.86ID:96uZKYcfd
>>958
。の話はどこへいったんだ?
2018/01/24(水) 13:52:49.81ID:QE61Ho6h0
いやこっちの方がわかりやすいかなとw
961デフォルトの名無しさん (ワッチョイ 5b7f-pQa0)
垢版 |
2018/01/24(水) 14:37:17.59ID:626EYBnb0
2週間くらい前から、

フォームコントロールのボタンを配置すると

エクセルファイルの起動が

いつもの起動時間の5倍くらいかかる様になり困っています。

ちなみに、新規のファイルでも同じ現象になり、

他のパソコンでも同じ現象になっています。

どなたか、解決方法を知らないでしょうか?

今使っている環境は

Windows 10、バージョン 1709
Excel2016 バージョン 1712

です。
2018/01/24(水) 14:47:11.88ID:LHEOU22dM
>>960
草生やしてんじゃねえよ真面目に質問しろ
2018/01/24(水) 16:00:42.34ID:eVK1iV6m0
2018/01/24(水) 17:24:26.92ID:QE61Ho6h0
なんでwなんて打ったのか・・・反省してます
2018/01/24(水) 17:48:11.23ID:cTEKAhE2M
>>964
VBA 正規表現 置換
でググれ
2018/01/24(水) 19:49:39.94ID:4OtF4psx0
>>958
みんなこれでわかるの?
上と下に規則性があるように見えないんだが
上は値を置き換えてて、下は挿入してるよね
2018/01/24(水) 20:02:49.35ID:XHxrtrwiM
わかりません
2018/01/24(水) 21:10:53.71ID:6b5evSsja
>>913
そのテキストファイルがCSVファイルみたいにカンマ区切りで
ヘッダとして項目名が付いてて項目名に重複が無ければ
そのファイルにSQLぶん投げて結果セット取ってこれるんだけどなぁ
969デフォルトの名無しさん
垢版 |
2018/01/24(水) 21:14:29.60
地道にループぶん回してFomulaLocalとInStrとMidしてちょ
2018/01/24(水) 21:29:25.29ID:l13g0WQj0
いや、ループするにしても
VbScriptingDictionary使うかCollection使って
値をキーとして登録して
同じキーがあれば無視、無ければ登録追加で
最後にその取っておいた内容を
展開するようにすればそこそこのレスポンスで
行けるんじゃないかな。

SQLで行けるならそれが最速だとは思うけど。
2018/01/25(木) 19:41:38.87ID:x0ph6Erf0
ちゃんとしたDBMSならともかく、エクセル表にSQL投げて実行速度が速いとか考えられんけど
2018/01/25(木) 21:14:11.87ID:xVw6nJl50
ADOだとそれなりに早いイメージなんだけど
実際はどうなのかね
誰か検証していてもよさそうだが
2018/01/25(木) 22:04:13.28ID:BYFi0PM80
一項目だけの比較なんかだとVBAでやるのと変わらないけど、色々と条件が増えていくとSQLの方が速度が落ちにくい。
あと他の誰かが見ることも考慮すると、SQLで見えるようにしておいた方が分かりやすい。

ただExcelでSQLというのは絶望的に使いづらい。
2018/01/25(木) 22:28:41.91ID:3kW0jqmr0
UPDATEはできるけどDELETEができないんだっけ?
2018/01/25(木) 22:46:48.37ID:2HN+h3+60
できなくてもやらなきゃいけない時があるんだよ男にはな
2018/01/26(金) 10:16:15.47ID:i1V2CYFLa
エクセルのテーブル機能ってどうなんよ
あんまり使わんから馴染みないんだけどsql使いやすくなったりせんの?
2018/01/26(金) 14:00:22.47ID:ewTTza6/0
>>975
猫もだよ
穴に逃げた虫を懸命に取ろうとしている
2018/01/26(金) 19:52:38.86ID:uoysLyn50
こういうのを見ると
早くPython導入して欲しいって思うよな
アンケート取られてたからちょっと入門見たけど結構面白いわアレ
こういった集約的なことに関してもずっと楽に作れそう
VBやC#でも後の方で覚えることになるラムダ式や
イテレーターとかごく基本的な当たり前のこととして
いきなり最初から出てくるし
979デフォルトの名無しさん (ワッチョイ b703-rERY)
垢版 |
2018/01/26(金) 20:26:28.69ID:Vo+OzJVu0
VBAですら暴走しまくりのお前らにpythonなんか与えたら社会を困らす力作マクロ()がますます増えちゃうじゃんかw
2018/01/26(金) 20:36:36.35ID:VXa7znFt0
コードをまともに読み書き出来ないメゾット君が心配するような事でもないけどな
2018/01/26(金) 22:00:17.36ID:mlDN6tJ0d
VBAを廃止なんてできるわけないからPythonと入り乱れたプログラムになるんだろーか?
982デフォルトの名無しさん (ワッチョイ e3e5-WVzr)
垢版 |
2018/01/26(金) 22:15:41.07ID:pXxYwYu40
職場の環境じゃVBAくらいしか選択肢がない
2018/01/26(金) 22:23:52.83ID:Ji/nweCn0
>>982
https://forest.watch.impress.co.jp/docs/serial/yajiuma/1097447.html
2018/01/26(金) 22:40:51.06ID:VXa7znFt0
影響するのは最新バージョンだけだろうし、Excel版Pythonの初期バージョンだと使い物にならなかったり参考文献が少なかったりの問題で、
本格的に使われるようになるにしても五年以上かかりそう。そしてそこからさらに数年経たないと、そのバージョン使う会社が出てこなさそう。

っていうか今までもVBAをVB.Netへ移行させようとして失敗してたらしいし、AIブームに乗じた一時的なもんで実現しないんじゃないの。
985デフォルトの名無しさん
垢版 |
2018/01/27(土) 00:23:34.40
Pythonって起動にめっちゃ時間がかかるから(5秒くらい)
普段使いのちょっとしたツール作るには使い物にならないという印象
2018/01/27(土) 00:36:59.48ID:Xe+uGT7T0
多分Python載ったとしてもしばらくはVBAと共存だろうとは思う。
勉強嫌いな爺さん達にはPythonが来るのは驚異以外の何物でもないかも知れないけど
導入されたら少なからず徐々に普及し始める。

なぁに、EXCELの中のコンパクトに纏まった世界の話だし
勉強するにはうってつけだと思う。
少なくとも今後のVBAよりは次に繋がるよ。
2018/01/27(土) 01:00:30.81ID:/Onm91iZa
今まで言語を変えるような具体的な話は出てなかったからなぁ
まさかObject指向言語じゃなくていきなり関数型言語が来るとはなぁ
2018/01/27(土) 01:49:19.54ID:mMQhkopa0
PythonはAIブームの収束と共に消えていきそうな雰囲気だから将来性っていうと疑問が・・・。
2018/01/27(土) 08:00:53.71ID:lEBNH3fnr
ツッコミどころ多すぎだけどとりあえずw
オマエがギモンを感じるなw
2018/01/27(土) 08:16:06.57ID:ZgMGVzLO0
>>985
> Pythonって起動にめっちゃ時間がかかるから(5秒くらい)
さすがにPC買い換えようよ...
2018/01/27(土) 11:01:00.79ID:Nudrd5lRF
Excel Python 質問スレ
http://mevius.2ch.net/test/read.cgi/tech/1517018055/
2018/01/27(土) 14:29:11.91ID:arqbrGPuM
VBAがくっそ使えない言語だから普通はpython大歓迎でしょ…
2018/01/27(土) 15:20:10.85ID:cbFXqoc10
VBA嫌いじゃないけど、Phythonの方が明らかにエレガントなコーディングできそうだから歓迎しかないわ
VBAは参照設定したら使える程度のものになるんじゃないか?
2018/01/27(土) 15:44:26.54ID:+7hAxrT3a
どんな言語だってできる奴はできる。
VBAが駄目だとか言う奴に限って碌なコード書けない奴ばかりなんだよなあ。
2018/01/27(土) 16:05:43.43ID:arqbrGPuM
こんな書いててストレスマッハの言語はないからな
まあ全員パイソンいくでしょw
996デフォルトの名無しさん (ブーイモ MM06-WVzr)
垢版 |
2018/01/27(土) 16:11:26.72ID:3QIsbpwxM
VBA→javascript→Pythonの順に覚えたけど何がそんなにストレスなのかよく分からん
2018/01/27(土) 17:39:06.57ID:Xe+uGT7T0
それより次スレは?
2018/01/27(土) 19:59:27.66ID:QIG/4o8/0
>>993パイソンやとスレで相談したいときに
質問スレではインデント崩れて悲惨なことになってるな
2018/01/27(土) 20:30:03.56ID:Xe+uGT7T0
とりあえず次スレ立てておいた
Excel VBA 質問スレ Part52
http://mevius.2ch.net/test/read.cgi/tech/1517052305/

>>998
Pythonはスコープがインデントで決められているからね
インデントの重みが他の言語のそれとは全く違う

代わりにEnd IfやEnd Subみたいなものがない
2018/01/27(土) 22:07:33.55ID:845Tmzax0
>>999

1000ゲット
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 80日 10時間 41分 3秒
レス数が1000を超えています。これ以上書き込みはできません。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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