VBAが妙な挙動をしたので困った時

仕事で26万件くらいのデータを加工しないといけなくなったのでVBAでやってみた。

ステップインでは動くのに、いざ実行すると途中5千件くらいでエラーになってしまった。

プログラム書くのが苦手なのでシートをアクティブにして、そのシートの操作をしているところでいつも止まってしまうことに気づいた。(ちゃんと書けばいいのは分かってます。withで書けばいいのにめんどくさがったせい。)

以下のコードを止まるところの前に追加してみたところ動くようになった。

Application.Wait [Now()] + 0.5 / 86400

件数が多いので1秒では待ち時間が長いためこちらのサイトを参考にした。

https://www.higashisalary.com/entry/vba-wait-ms


26万件動かしてみたら今度は20万件くらいでまた別のエラーで止まってしまった。

しかもいくつかの行が非表示になっている。

Rows.Hiddenなんでどこにも書いていないのに!

データの件数が多すぎたのか?ということで以下を追加したら動いた。

'画面表示の更新を一時的に止めて

Application.ScreenUpdating = False

'この間にやりたい処理を書き、

'画面表示の更新を再開

Application.ScreenUpdating = True

こちらのサイトを参考にしました。

https://teratail.com/questions/171969


半分に分けて処理すれば良かったのかと気づいた時は処理が終わってた。


行き当たりばったり…

本業がプログラム書く人はすごいなぁ。

コロナ怖い

ついにGLAYまでコロナに罹ってしまいました。

しかもTAKUROさんが…


https://www.yomiuri.co.jp/culture/music/20220120-OYT1T50211/


静岡のエコパアリーナでの公演が中止になってしまったため、週末はYouTubeで過去のライブ映像を公開していました。

その冒頭でTAKUROさんが悔しそうに公演をキャンセルしてしまい申し訳ないというコメントをしていました。

体調が回復に向かっているとのことで少し安心しましたが2週間後にはさいたまスーパーアリーナでのツアーファイナルが待っています。

無事にメンバー全員でライブができることを願っています。

ご無沙汰してます。

Python始めましたと言いつつ更新しないまま放置していました。

結局どうなったかというとPyQで学習を進めてDjangoで挫折してしまいました。

写経しても基礎が足りてなくて何をやってるかわからなくなりました。

挫折してしまいましたが、Pythonの学習で学んだことはVBAでエクセルマクロを作る時の考え方の役に立っています。


仕事でVBA使う機会が増えてきたので、スムーズにVBAを書けるようになることが今の目標です。

新しいことに挑戦中

正規表現は相変わらず苦手でよくわからないことばかりですが、

Pythonのコードを書くだけじゃなくって、Pythonの使い方(?)の部分も勉強しないと仕事にはできないようなので、少しずつ始めてみました。

 

目標はFlaskとjinja2を使ってPythonが入っている何かをChromeから動かすこと。

自分のパソコンだけじゃなくてherokuとかを使って、実際に公開するところまでしたい。

そんなんですが、少しずつ進めます。

Python正規表現メモ①

正規表現がわからなさすぎて挫けそうなのでブログにしてみます。

 

まずは、reモジュールをインポートする。

 import re

 

区切り文字が同じ意味で複数種類あるのをsplitする場合は、こんな書き方をして、リストで返ってくる。

\s* は0個以上のストリングがあること。これがあると、前後の空白と区切り文字をまとめて一つの区切りとして扱ってくれるので、表記ゆれの解消に使える。

 re.split('\s*[いろんな区切り文字]+\s*', 対象のストリング)

 

 

正規表現って出来るようになると面白そうだけど、記号の種類が多すぎてついていけない。

クラスってなんでしょう?

プログラミングを初めてやると、知らない言葉がたくさん出てきます。

その中のひとつである、「クラス」、

これが理解できない・・・

 

クラスの何がわからないのか?

  • クラスが必要な理由がわからない
  • クラス名の最初の文字が大文字な理由わからない(大文字と小文字の区別もあるみたいで、クラスを作るときは小文字で、呼び出すときに大文字にしてみたらエラーが帰ってきた)
  • 属性を毎回初期化しないといけないのがよくわからない
  • クラスってなに?っていう質問をしたときに皆違うことを言っているような気がする(違うと思っているのは私だけなのかも?)

何度も書いていたら理解できるのかな。。。

がんばろ。

タブレットと外付けキーボードでPyQ

iPhoneでPyQをしていたときは、日本語入力ができないことが最大の難点でした。

難易度が上がってくると、iPhoneでは追いつかなくなってきたので、Windowsタブレットと外付けキーボードでPyQをしてみました。

これで問題はすべて解決するかと思いきや、新しい問題が発生しました。

「実行」ボタンや「判定」ボタンを押すと、プログラムを書く黒い画面にカーソルが飛び、スクリーンキーボードが出てきて画面の半分近くを占めるという問題です。

プログラムを書く→実行→判定 という流れで問題を解くのですが、「実行」ボタンや「判定」ボタンは何度も押下するので、その都度escキーでスクリーンキーボードを消さないと画面が見えなくなります。

めっちゃ画面が大きいタブレットとかであれば問題ないかもしれませんが、長いプログラムを書くようになってくると、実行→エラーを確認→実行→エラーが解消されたか確認→実行・・・と延々に続けることになり、その都度escキーを叩くというのは、実用的とは言えません。

餅は餅屋とよく言いますが、プログラミングはパソコンでするのが一番で、タブレットスマホでは厳しいと思いました。

totte.hatenadiary.com