タグ

VBAに関するTomosugiのブックマーク (75)

  • エクセルマクロのお作法(計算用シートという諸悪の根源について)

    前置きこの日記の内容は、会社の後輩から「最近エクセルマクロを勉強し始めて(キラキラ)」という話を聞いて、先輩ムーブをかますために話した内容になります。 とにかくこれから説明する「計算用シート」が憎くて憎くてたまらず、ちょっと引かれるほど熱弁してしまいました。 ただ、他の方がどうされているのかや、逆に「計算用シート」を愛用する方の意見も聞きたくなり、増田に書いてみました。 増田の経歴中小企業の非エンジニア(事務職員)エクセルマクロ歴8年くらい 初めて触った言語がVBAで、前任が作ったエクセルマクロを改修をいきなり頼まれたのがきっかけ会社の都合でJava Script、PHPからなる社内システムの改修、保守を担当したことあり 今は趣味PythonNLP、LLMを勉強中この記事の趣旨エクセルマクロのお作法とか書きましたが、要するにエクセルマクロで「計算用シート」って色々な意味でよくないよね、

    エクセルマクロのお作法(計算用シートという諸悪の根源について)
  • 仕事の効率化なんてするもんじゃない

    ExcelVBA組んだりしてる。 ググれば誰にでも出来る、簡単なやつだ。 元々、CとかJavaとかやってたから独学。 独学っていうかヘルプ読むなり感覚で分かるけどな。 念のためVBAの書籍読んだりもしたぞ。 入社1年目、Excel使いとして社内で評判になった。 1週間かかるExcel作業をボタン一つ押すだけ、5分待つだけで完了になるツールを作った。 (念のためバックアップもしっかりとるツールだ) そして今、5年が経つが5年で60個はツール作ったんじゃないか? 月1、2ペースで作った。私の休憩時間は飛んでった。 1日かける仕事を5分にしたり、その他効率化作業をやりすぎて 他の仕事がどんどん舞い込んでくるようになった。 「増田さんならできるよね?」という一言を添えて。 いやさ、お前ら自分で組む気は無いのかよww 頼まれた仕事やったところで「自分には一銭も返ってこない」ってのがほんとクソ。 自

    仕事の効率化なんてするもんじゃない
  • 【エクセル区切り位置】スペースが含まれるデータを一瞬で分割する

    こんにちは!ITライターのもり(@moripro3)です! エクセルの「区切り位置」を紹介するシリーズ・第1回目です! オフィスワークで、こんなエクセル作業に苦戦したことはありませんか? スペースが含まれる氏名のデータ(姓 名)を、スペースで区切って分割する システムからダウンロードしたカンマ区切りのテキストファイルを、カンマで区切ってエクセルシートに取り込む このような作業が簡単にできる隠れ優秀キャラの「区切り位置」を、シリーズを通じて紹介していきます。プログラミングもエクセル関数も不要の”超やさしい機能”ですよ。 シリーズ初回の当記事では、 エクセルの「区切り位置」とはどのような機能か? 「区切り位置」を使用して、スペースが含まれるデータを分割する方法 を紹介していきます! エクセルの「区切り位置」とは 「区切り位置」とは、エクセルシート上の、1つの列に入っているデータを複数の列に分割

    【エクセル区切り位置】スペースが含まれるデータを一瞬で分割する
  • InputBox関数を使った入力ボックス付きのダイアログボックスの表示

    1 番目の引数にダイアログボックスに表示する文字列を指定します。 省略可能な 2 番目の引数にダイアログボックスのタイトルバーに表示される文字列を指定します。省略した場合はアプリケーションの名前が表示されます。 省略可能な 3 番目の引数にダイアログボックスに表示されるテキストボックスにデフォルトで表示するテキストを指定します。省略した場合は何も表示されません。 省略可能な 4 番目と 5 番目の引数には、画面の左端からダイアログボックスの左端までの距離、および画面の上端からダイアログボックスの上端までの距離をそれぞれ指定します。単位は twip です。省略した場合は画面中央に表示されます。 省略可能な 6 番目の引数と 7 番目の引数にはダイアログボックスでヘルプを表示する場合に使用します。 InputBox 関数ではダイアログボックスを表示すると「OK」ボタンと「キャンセル」ボタンが表

    InputBox関数を使った入力ボックス付きのダイアログボックスの表示
  • 配列から不要文字を削除する(一次元/二次元)【ExcelVBA】

    配列から不要文字を削除したい配列内で、特定文字を削除したい場合があります。 パーツ化しておくことで処理を簡単にします。 配列から不要文字を削除して返すサンプルコード'■1次元の配列から不要文字を削除する Public Function Call_ArrayRemoveWord(ByVal arr As Variant, str As String) As Variant Dim i As Long For i = LBound(arr) To UBound(arr) arr(i) = Replace(arr(i), str, "") Next Call_ArrayRemoveWord = arr End Function '■2次元の配列から不要文字を削除する Public Function Call_ArrayRemoveWord2D(arr As Variant, str As Str

    配列から不要文字を削除する(一次元/二次元)【ExcelVBA】
  • Office TANAKA - Excel VBA Tips[Split関数で文字列を区切る]

    ※文字列を、区切り文字ではなく、位置で分割するやり方は「文字列を位置で分割する」をご覧ください。 Split関数は、ある区切り文字で区切られた文字列を、その区切り文字で区切り、区切られた各文字列を、一次元配列として返します。言葉で表すとややこしいですが、要するに次のような処理をしてくれます。 Split関数の書式は次の通りです。 Split(元の文字列 , 区切り文字) 上の例なら、次のようになります。 Split("123,田中,tanaka" , ",") Split関数は配列を返します。したがって、それを受け取る変数は、バリアント型変数か、動的配列でなければいけません。一般的にはバリアント型変数に受けます。Split関数の返り値(配列)を受け取ったバリアント型変数は、それ以降、配列として操作できます。 このとき注意しなければいけないのは、Split関数が返す配列の要素は0から始まると

  • Excel VBAで実用ツール(Dictionary、Collection、ArrayList、SortedList編) | ひで☆ログ

    Dictionaryオブジェクトを使用するための事前準備 Dictionaryオブジェクトを使用するための事前準備は、以下の3ステップです。 ⇒オブジェクトを使用するための事前準備とオブジェクトブラウザによる調査方法については、Excel VBAでオブジェクト指向プログラミング(事前準備編)を参照して下さい。 ①ライブラリの参照設定 Visual Basic Editor(VBE)のファイルメニューから[ツール]-[参照設定]を選択し、参照設定ダイアログでMicrosoft Scripting Runtimeのチェックボックスにチェックを入れ、[OK]ボタンを押下。 ②オブジェクト変数の定義 プログラムの宣言部でオブジェクト変数を定義。 Dim dic As Dictionary ③インスタンスの生成 プログラムの処理部でインスタンスを生成。 Set dic = New Dictionar

    Excel VBAで実用ツール(Dictionary、Collection、ArrayList、SortedList編) | ひで☆ログ
  • VBA 上級者から初段へ③ 変数名などの簡単な命名規則 - ゆんの業務改善ブログ

    VBAのプログラミングで上級者から初段にステップアップする為のシリーズの3回目です。今回はメンテナンス性と開発効率を上げるのに役立つ、変数名やプロシジャ名の付け方について解説します。 この記事は上級です。 レベルについてはExcel VBAの実力(レベル)を定義してみる 初心者~三段をご参照ください。 目次 名前の付け方にルールを作る方法 ルールを作るメリット ルール自体は何でもいいがある程度の一貫性を持たせる ルールの付け方の例 日語の例 日語の変数名の例 日語のモジュール名の例 日語のSubプロシジャ名の例 日語のFunctionプロシジャ名 日語のクラス名 英語の例 英語の変数名の例 英語のプロシジャ名の例 ちなみに・・・エクセルの流儀はキャメルケース 命名規則(ルール)の作り方まとめ 名前の付け方にルールを作る方法 今までは変数名やプロシジャ名の付け方に特にこだわってき

    VBA 上級者から初段へ③ 変数名などの簡単な命名規則 - ゆんの業務改善ブログ
    Tomosugi
    Tomosugi 2022/11/14
  • Excel VBA 時間のかかるマクロの進捗状況を表示する

    時間のかかるマクロの進捗状況を表示する方法数万回の繰り返し処理などで時間のかかるマクロの進捗状況を表示したい場合に、手軽に利用できる方法は「ステータスバー」に進捗状況を表示する方法です。 「ステータスバー」には、任意の文字を表示することができるので、進捗状況のパーセントを表示したり「■」と「□」を利用して棒グラフを表示することもできますが、画面の左下スミなので、視覚性が良くないのが欠点です。 そこで、手間はかかりますが、ユーザーフォームの「プログレスバー」を利用する方法もご紹介します。 ステータスバーにマクロの進捗状況を表示する方法今回は3万回の繰り返し処理の中で進捗状況を「ステータスバー」に棒グラフのように表示するコードをご紹介します。 実行イメージ ステータスバーにマクロの進捗状況を表示するコードと解説このコードは「ステータスバー」を表示するために作成したコードなので、実際使用する際は

    Excel VBA 時間のかかるマクロの進捗状況を表示する
    Tomosugi
    Tomosugi 2022/10/12
  • VBAでBOMなしUTF8ファイル出力

    1 2With CreateObject ("ADODB.Stream") 3 4 .Charset = "UTF-8" 5 .LineSeparator = adLF 6 7 .Open 8 9 ‘中身 10 11 For i1 = 3 To WkEndRow 12 For i2 = To WkEndColumn 13 14 If i2 = WkEndColumn Then 15 16 WkParam Area = WkParam Area & vbTab & Cells (i1, i2).value & vbLf 17 18 ElseIf i2= 1 Then 19 20 WkParam Area=WkParamArea & Cells (i1, i2).value 21 22 Else 23 24 WkParamArea = WkParamArea & vbTab & Cells(i

    VBAでBOMなしUTF8ファイル出力
    Tomosugi
    Tomosugi 2022/08/13
  • あなたにとってVBAとは? - VBAマスターの俺がブログを書くとこうなる

    Visual Basic for Applicationsです! もしかしてTVチャンピオンで義剛が優勝者にCMギリギリで質問するやつみたいなのを期待してた?残念!曖昧さ回避のためのページでした! というのも、最近twitterVBA関連のツイートを検索して困ってる人を眺めてるのが楽しくてしょうがないんだけど、「VBA」っていう単語で検索かけても「VBA2」とか「VBA全滅」とか「VBAライブ」とか「VBA楽しい」とか意味不明なノイズが大漁に混じってくるんだよね。 ちなみに… VBA2 VBAのしんかけい。やく16じかんに 1かい ばぐる。 エラーで なんぱしかけてる ひとを みまもる やさしいげんご。 VBA 全滅 致命的なエラーによりファイルが深刻な状態となり人生が終わること。 「ファイル開けなくなっちゃったけど、今どんな気持ち?」 とRTしてあげるのが優しさ。 VBA ライブ ステ

    あなたにとってVBAとは? - VBAマスターの俺がブログを書くとこうなる
    Tomosugi
    Tomosugi 2020/06/19
  • Excelマクロ使いが日本の人手不足を解消する

    記者は現在、ソフトウエアのロボット(ソフトロボ)を使ってPCの定型作業を自動化する技術RPA(ロボティック・プロセス・オートメーション)」を積極的に活用している企業の取り組みを取材している。取材企業数は20社近く。その成果は2018年6月以降、日経 xTECHや日経コンピュータで紹介する予定だ。 その取材の中で「Excelのマクロ使いが、日の人手不足を解消する」という興味深い話を聞いた。Excelのマクロとは、Excelの定型操作を自動化するマクロ機能のこと。Excelのマクロ使いは、その機能を駆使してきた現場担当者を意味する。 そう指摘していたのが、リース会社であるSMFLキャピタルの川名洋平執行役員オペレーション部長と、藤原雄情報テクノロジ部デジタルリーダーだ。2人はデジタル変革の一環で、社内へのRPA普及に取り組んでいる。 SMFLキャピタルは2017年5月、オフィスワークの

    Excelマクロ使いが日本の人手不足を解消する
  • Google Apps Scriptプログラミングでスプレッドシートを操作するための基礎知識

    Google Apps Scriptプログラミングでスプレッドシートを操作するための基礎知識:Excel VBAプログラマーのためのGoogle Apps Script入門(1)(1/2 ページ) Googleが提供するGoogle Apps Scriptのプログラミングで、Google Apps(主にスプレッドシート)を操作する方法を解説していく連載。初回は、Google Apps Scriptやスプリプトエディタの概要、スプレッドシートを表示し、Browser.msgBoxメソッドでメッセージを表示する手順などについて解説する。 連載「Excel VBAプログラマーのためのGoogle Apps Script入門」では、Googleが提供する「Google Apps Script」のプログラミングで、「Google Apps」を操作する方法を解説していく。 連載ではGoogle Ap

    Google Apps Scriptプログラミングでスプレッドシートを操作するための基礎知識
  • ExcelVBAとAccessの連携 第3回 SQLを使った読み書きの処理

    MS Office カテゴリ MS Office (100) 関連タグ Access (35) Excel (83) PowerPoint (8) YouTube (5) 入門 (33) Web カテゴリ Web (85) 関連タグ facebook (4) jQuery (10) linux (3) Photoshop (17) PHP (24) tips (21) twitter (10) WordPress (76) YouTube (5) アプリ (28) イラスト (41) デザイン (15) ブログ (38) 入門 (33) 分析 (19) Adobe カテゴリ Adobe (27) 関連タグ facebook (4) Fresco (2) Illustrator (8) JavaScript (7) Photoshop (17) Premiere (3) tips (21)

    ExcelVBAとAccessの連携 第3回 SQLを使った読み書きの処理
  • Excel2010-2016:土日なら前の平日を返す(WEEKDAY関数,WORKDAY関数) - 教えて!HELPDESK

    ■ 指定日が"土日"なら前の平日を返す WORKDAY関数 … 土日祝日を除いて○日前(後)を出せます(詳しく→ WORKDAY関数) WEEKDAY関数 … 曜日を数値に変換するため曜日による条件を作成できます。 ▼ 確定日を出す(希望日が土日なら前の平日)▼ ■ WORKDAY関数の場合 前の平日を出す → Workday(開始日+1,-1,祝日) 次の平日を出す → Workday(開始日-1,1,祝日) B2に =Workday(A2+1,-1) ■ WEEKDAY関数の場合 WEEKDAY (日付シリアル値 , 曜日の種類★1) B2に =IF(WEEKDAY(A2,2)=6,A2-1,IF(WEEKDAY(A2,2)=7,A2-2,A2)) ◆Weekdayの結果が6(土曜)なら希望日-1、7(日曜)なら希望日-2、それ以外はそのまま日付を表示 ★曜日の種類一覧★ 例えばWee

    Excel2010-2016:土日なら前の平日を返す(WEEKDAY関数,WORKDAY関数) - 教えて!HELPDESK
  • 日経PC21 / エクセル - 勝手に設定される「ハイパーリンク」を解除したい!

    最新号日経PC21 2024年 4月号 発売日:2024年2月24日 特別定価:880円(紙版、税込み) 【特集】 目標はパソコン10年! スマホ5年! パソコンとスマホの寿命を延ばす 【特集】 機能の違いは? サポートは? 有料セキュリティアプリは必要か 【特集】 無料ツールもフル活用! PDFの「悩み」大解決 【緊急リポート】 Core Ultra搭載機も登場 注目度No.1 パソコン春モデル ≫サンプルファイルのダウンロード

    日経PC21 / エクセル - 勝手に設定される「ハイパーリンク」を解除したい!
  • 新規ブックの作成

    省略した場合はワークシートがデフォルトで作成されてブックに格納されます。デフォルトでは3枚のワークシートが作成されるように設定されています。 ※新規ブック作成時にデフォルトで何枚のワークシートを作成するかを設定するには「ブック作成時のワークシートの作成枚数」を参照して下さい。 サンプルプログラム では簡単なサンプルで試してみましょう。

    新規ブックの作成
  • Office TANAKA - VBA講座:ファイルの操作(ファイルの一覧を取得する)

    任意のフォルダに存在するすべてのファイル名を取得するには、Dir関数にワイルドカードを指定します。次のコードは、C:\Sampleフォルダに存在するすべての「*.xlsx」をアクティブシートに書き出します。 Sub Sample1() Dim buf As String, cnt As Long Const Path As String = "C:\Sample\" buf = Dir(Path & "*.xlsx") Do While buf <> "" cnt = cnt + 1 Cells(cnt, 1) = buf buf = Dir() Loop End Sub Dir関数にワイルドカードを指定して実行すると、まずそのワイルドカードに一致するファイル名が返ります。次に、Dir関数の引数を省略して実行すると、前回に指定されたワイルドカードが指定されたものとしてファイルを探します。そ

  • サブフォルダを含めてファイル一覧を取得する(Dir関数の再帰呼び出し):Excel VBA|即効テクニック|Excel VBAを学ぶならmoug

    サブフォルダを含めてファイル一覧を取得する(Dir関数の再帰呼び出し) (Excel 97/2000/2002/2003/2007) ツイート あるプロシージャが、そのプロシージャ内で自分自身を呼び出すような処理を再帰呼び出しと呼びます。 たとえば、簡単にいうなら次のようなパターンです。 Sub Sample1() ''何かの処理 : Call Sample1 : ''何かの処理 End Sub 再帰呼び出しを利用するのは「○○について××する」というようなケースが多いです。 このうち「××する」部分は共通ですが「○○について」の"○○"が定まっておらず次々と動的に変化します。 ここでは「"指定したフォルダ"について"存在するファイル名をセルに代入"する」というマクロを、再帰呼び出しで作成してみましょう。 なお、ここでは次のようなフォルダ構造を例にします。 C:\Work +- Sub1

  • 【VBA】1行でExcelのいろんなインターフェースを非表示にする。 - ぺんぎんノート

    ども。今回はExcel VBAです。いろいろさわってますが、結局仕事に簡単に直結するのはExcelVBAだと思います。 この記事では、Excelのリボン、数式バ-、スクロールバーなど、Excelのいろんなインターフェースを非表示にするVBAプログラムを紹介します。 前置き ExcelVBAプログラムを作るとき、とっても気を使う Excelってもともといろいろなインターフェースがあって、ユーザの自由度が高いですよね。 たとえば、リボンでフォントの設定とか簡単にできちゃうし、開発タブを有効にしていれば追加でVBAプログラム書けちゃうし。 セルやシートをロックして入力を制限するは有効な手段ですが、そもそも設定が手間。しかもロックするくらいしかできないので、自分の思うどおりに開発ができなかったりして、兼ね合いをとるのがとても面倒です。 特に、モーダルウィンドウを表示した操作を取り込む場合、とて

    【VBA】1行でExcelのいろんなインターフェースを非表示にする。 - ぺんぎんノート