ぽけっち | Excel VBA 実例に対応するツール作成のヒント

プログラマーしながら猫の人形を作成してます 我が家のお笑い猫 まーちっこ、ちーちゃん、ナギ、チャイをメインに人形を作ってます サーニット粘土で顔を作ります 本業のプログラマーで経験の備忘録です

ぽけっち | Excel VBA 実例に対応するツール作成のヒント

プログラマーしながら猫の人形を作成してます 我が家のお笑い猫 まーちっこ、ちーちゃん、ナギ、チャイをメインに人形を作ってます サーニット粘土で顔を作ります 本業のプログラマーで経験の備忘録です

最近の記事

Excel VBA クラーク日記 エラーが出たときの報告テンプレートの必要性

対策:ツールのエラーが起きた時、質問で使うテンプレートを作成して使ってもらう クラークさんは目一杯、頭を抱えてました とうらさんからのメッセージが意味不明で 何が起きたのか、わからないのです 長ーい時間、頭を抱えて解読不能なメッセージは見ないことにしました とうらさんに 「何が起きたのかな?」 とメッセージを出します 要領を得ない言葉で返されるのは困るので 「はい」「いいえ」で返せるように質問します クラーク「ツールが動かないのですか?」 とうら「はい、この操作を

    • Excel VBA クラーク日記 ツールの動かし忘れ

      対策予定:実践してないが          クラウドに作業管理のファイルを作成して 上司、作業者がタスクを行ったかを見れるように最後にチェック 会社の規定でタスクマネージャが使えないので残念 月に数回、別部署からクレームが上司に入ります 「クラウドのこの場所にフォルダがありません 作業は大丈夫だったんですか?」と焦っています とうらさんとあおさんに上司が訊いています 「昨日の作業で何か問題でもおきたのかな? それともツール動かしてない?」 しばらくたってから 「動か

      • Excel VBA クラーク日記 ファイルの移動ができない

        対策:移動処理の後にクラウド側のフォルダに移動したいファイルがあるかをチェック とうらさんから「クラークさん、この場所にファイルがないんですけどー」 「あおさんはツール動かしたっていってるんですけど」 クラークさんは考えてます 【クラウドとローカルが何かの拍子に接続切れたのか、誰かがファイルを使っていたのかなあ】 【エラーログに何か書いてあればわかるんだけど、残らないのもあるんだよね】 クラウド、空き容量の問題はVBAでは手出しできない 誰ががファイルを使ってるかど

        • Excel VBA クラーク日記 間違ったファイルを読み込んだ

          前回の行列非表示問題はいかがでしたか? 対策:open for input as             Line Input 少したった頃、 とうらさんからメッセージがきました 「クラークさん 集計するツールが途中で止まっちゃった、何で」 「どのボタン押したのか、教えてくれるのとツールをエラーフォルダに入れてくれますか?」  使用するファイルや格納先をツールで指定してるので エラーが起きたときにすぐにわかります それとどこでエラーが起きたのかもわかるようにしています

          EXCEL VBA クラーク日記 列、行の非表示って

          はーい、みなさん  作業用のツールを使う人からこんなトラブル出たって言われて  頭を抱えること、ありませんか?  対策、回避策、誰かの役に立てればいいなあ  ロジックは書かないよ~  登場人物  とうらさん 注意力 少なめ かなり意味不明な説明をしてくる  あお    注意力 少なめ             とうらさんより注意力がない            勝手に作業して他部署からクレームが  クラーク  ツール作成、対策、回避策をする人 EXCELでの表は異様に横に長く

          EXCEL VBA クラーク日記 列、行の非表示って

          複数ある項目Keyにするとき

          改修中のソースの中で出会う複数項目の連結 Keyで重複を作成することはバグ発生の原因になります Excelで複数の項目をKeyにするとき、項目を連結してKeyを作成します 気をつけたいのは文字の長さ 文字の長さがすべて固定の時はそのまま、連結しても問題ないでしょう 可変のときは数値の項目を2度連結すると 極端の例ですが 111 1&11 11&1 というKeyができる可能性が出てきます この時に気づけば連結するときに間に入れる文字を決めてあげましょう

          データ件数が多いときの重複データの調べ方

          重複データの確認をするとき、関数のCOUNTIF、COUNTIFSを使用することが多いと思います 関数を使用した後にAutofilterして重複分のみ表示する 件数が多くなると処理時間がかかります そこでピボットテーブルを使うという方法もあります Excelのシートに追加できる件数は100万件ちょっと それ以上のデータを処理したいときはAccessにデータを格納して Group by とCountを使用することです

          データ件数が多いときの重複データの調べ方

          VBAのConstで列名を定義するのはありか、なしか

          はい、今回もExcelで発生した列名定義について 最初の列の位置とかを指定するぐらいだったら問題ないと思うのですが 全部の列をConstで定義しているVBAを見ると改修に頭を抱えることが多いのです この作り方をする人は 横にいろんなファイルの列がずらりと並び 1つでも項目がかけたり、増えたりするとすべて定義しなおしが出て 確認するだけでも時間がとられてしまいます とっても面倒なんです 私は面倒なことはプログラムに任せて楽したい派なのです 他に項目一覧のシートを作成して

          VBAのConstで列名を定義するのはありか、なしか

          Excelの数式を値に変える

          Excelに数式をたくさん入れて作業している人いませんか 場合によっては数式を入れてAutofilterを使うと使用中に数式の計算が自動で行われます その時は手動計算にしておいてもよいと思います その時には数式を値に変更してAutofilterするのも手段として考えてみましょう Countifの数式の時は他にも方法がありますのでまた、今度

          休憩タイム1

          たまには仕事の備忘録じゃなくてもいいのかな? ネットでの買いたいものを検索するときに 皆さん、どんな単語を羅列するのかしら 単語の羅列じゃない人もいるのかな? 検索キーワード 猫 パウチ 猫 ペットシート 探してしまうのですよね、我が家の猫様 商品を

          workbookを変数に格納しないのはありか、なしか

          最近、目にしたVBAのworkbookの書き方です workbooks(xx).worksheets(x).range(1,"A").select 同一のBookを使用するときには同じ名前がずーっと続くのです そしてbookを閉じる時にはbookの一覧を取得してあれば閉じる って 途中でbookの名前を変更したものだったら閉じれなくてメモリを食い潰す という斬新な書き方にプチ脳内パニックになりました もちろん、作業者から苦情が来ていたので 彼が書いた   一部のbo

          workbookを変数に格納しないのはありか、なしか

          0落ち(CSVファイル)

          なんとか、3日坊主を越えました どのくらい続くか、ネタがあるのか ExcelでCSVファイルをOpenして閉じると 0から始まる数値、郵便番号、電話番号など 例えば、北海道の郵便番号は0から始まります 7桁が5桁、6桁とExcelが自動変換してくれちゃうので困ります 毎回、Officeが余計なことをしないでほしいと思います なので左詰めで0を足す余計な作業が増えるのです

          Key項目の重複チェック

          Keyになる項目の重複チェックを行う時は ExcelだとCountifで件数を取得して重複件数を取得することが多いです そのあとにAutofilterで重複したKeyのみ表示 上記は生データを加工できないときの方法です 生データを加工できるときは重複削除を行います AccessだとGroup By とCountや、Distinctを使っています

          100万×100万の高速化

          100万×100万=一兆 実務でたまに見かける前任者たちの処理方法です 一つずつCellを2重以上のLoopを行う処理を見かけます Excelの行数の最大値は1,048,576 通常業務ではぎりぎりまでデータを使うことはほとんどないと思います A列のデータ 100万行 C列のデータ 100万行 すべてfor nextでif文で一致するデータを格納するという処理を行うと 100万行あるデータをif文で一致するかを繰り返す処理を100万回行うことになります 二重Loopに

          プログラミングにコメントは必要なのか

          プログラムソースにコメントがあったほうが親切です コメントの記載をしたくないときはシートに概要の記載をお願いしたいですね 最近、会社をやめた方のExcelのソースの修正や高速化を求められることが多いです プログラムにコメントは必要ないから中を見ればわかるでしょというスタンスの方を見かけます 作業しながらプログラムする方の多くは 繰り返し処理の中でif文で一致したらまた繰り返し処理と多重ループで作成する方が多いです 作業の内容を把握していれば理解もできますが、作業の内容