タグ

VBAに関するHamukoroのブックマーク (20)

  • Excelブック単体でExcelVBAを疑似マルチスレッド化してみる - えくせるちゅんちゅん

    今回はExcelブック単体でVBAを疑似マルチスレッド化できるか実験を行い、見事成功したので紹介します。 きっかけ コード 結果 ちょっとだけ解説 Application.OnTime について まとめ きっかけ 最近(私の中で)話題な「Excel Piano」開発者のA氏がこんなツイートをしていました。 VBAで並列処理するのってどうやるんだろ… VBS呼び出せばいいけどWindows APIの呼び出しがExcel経由でやらんなんくてなんか面倒。 いいやり方知ってる人いたらリプください— あっさん (@Kabura_net14831) 2019年3月26日 彼の言うとおり VBScript を使うことで、並列処理をすることは可能ですが、いろいろと問題があります。 VBSで実現できる並列処理は、疑似マルチスレッド(実際にはマルチプロセス)である。 VBSはExcelのVBEの中でデバッグが

    Excelブック単体でExcelVBAを疑似マルチスレッド化してみる - えくせるちゅんちゅん
    Hamukoro
    Hamukoro 2019/03/27
    すごい
  • 昨日までJavaJavaしてた人がいきなりExcelのVBAを実装する羽目になったときのためのメモ - Qiita

    Excel は滅びぬ! Excel の力こそ日企業の夢だからだ! VBA 実装してて学んだこととかのメモ。 JavaJava してたかはあまり関係ないかも。 エディタの使い方 エディタを表示する Alt + F11 で VB エディタを表示できる。 環境設定 背景色・フォントを調整する デフォルトの白背景とか気が狂うので、暗い色にする。 「ツール」→「オプション」を選択し、「エディターの設定」タブを開く。 「コードの表示色」を選択して、「背景」の色を選択する。 ついでにフォントも見やすいやつに変更する。 これだけで開発効率が5割増しになる。 イミディエイトウィンドウ イミディエイトウィンドウを表示する いわゆるコンソールに当たるのが、イミディエイトウィンドウと呼ばれるウィンドウ。 Ctrl + G で表示される。 イミディエイトウィンドウに出力する ↓イミディエイトウィンドウに実行するプ

    昨日までJavaJavaしてた人がいきなりExcelのVBAを実装する羽目になったときのためのメモ - Qiita
    Hamukoro
    Hamukoro 2018/02/08
  • マクロで作業工程を改善するのは大歓迎なのですが、無断でやるのは避けた方がいいです。

    仕事関係の割とステレオタイプな寓話として、「Excelでマクロを組んで業務効率化したのに何故か怒られた」というものがあります。 皆さん、そういう話読んだことありますか? webでパッと検索してみると、幾つか類型的なものが引っかかります。これなんか結構昔からあるヤツですね。タイムスタンプは2009年になっています。 K谷「ああ、自動で計算するプログラムを組んだんですよ、マクロって言います。 こっちでやった方が作業効率も上がるしミスも減ると思いまして、何か問題だったでしょうか?」 ・・・・・・・・・・はぁ!?会社舐めるのもいい加減にしろよ、 仕事が早いというのは同じ環境でどれだけ間違いがなく効率よく作業ができるかということ、 そんなの社会人としてというか人として当たり前のことです。 マラソン大会で一人だけ車を使って優勝してもそんなの評価されていいわけがない。 「yahoo釣り袋」などと揶揄

    マクロで作業工程を改善するのは大歓迎なのですが、無断でやるのは避けた方がいいです。
  • 永和システム、Excelマクロをグーグル「G Suite」に移行するサービス開始

    永和システムマネジメントは2017年9月22日、マクロ付きのExcelファイルをグーグルの「G Suite」に移行するサービスを開始したと発表した。Excelの開発言語であるVBA(Visual Basic for Applications)で記述したプログラムをグーグルの開発言語であるGAS(Google Apps Script)に自動変換し、マクロを含むExcel資産をクラウドで利用可能にする。 新サービスの名称は「HIKKOSHIクラウド for Excel」。変換したいファイルをドラッグ&ドロップ操作でアップロードすると、見積もり価格を提示。正式に発注するとGoogleスプレッドシートに変換したうえで、Googleドライブに提供する。「見た目や使い勝手はExcelとほぼ同等」(永和システムマネジメント)という。 「ExcelGoogleスプレッドシートに変換するツールは存在するが

    永和システム、Excelマクロをグーグル「G Suite」に移行するサービス開始
    Hamukoro
    Hamukoro 2017/09/27
    関係ないけどMSはVB6捨てるのあきらめてマクロつきExcelをAzureに投げるとなんやかんやするサービスを提供してAWSを殴ったらおもしろいなと思った。絶対やんないだろうけど。
  • Office TANAKA - Excel VBA Tips[セルのValue2プロパティ]

    セルに入力されているデータを取得するのは簡単です。 Sub Sample1() MsgBox Range("D1") End Sub 上記の「Range("D1")」はプロパティが省略されています。Rangeオブジェクト(セル)では、プロパティを省略するとValueプロパティとみなされます。したがって、上記のマクロは Sub Sample1() MsgBox Range("D1").Value End Sub と同じ意味になります。 このように、セルに入力されているデータを取得するにはValueプロパティを使います。では、次のケースではどうでしょう。 セルに「\」記号と3桁区切りの表示形式を設定しました。セルには「\1,000」と表示されています。この状態でもValueプロパティは、あくまでセルに入力されているデータを返します。 そうではなく、セルに表示されている状態を取得したいときは、V

  • Office TANAKA - ファイルの操作[テキストファイルを操作する(読み込む)]

    ファイルから読み込む 最初は、次のようなテキストファイルを例にします。 ファイルの場所(フルパス)は「C:\Sample\Data.txt」とします。このファイルから、1行ずつ読み込んでセルに代入してみましょう。 テキストファイルから1行ずつ読み込むには、Line Inputステートメントを使います。 Line Input #番号, 変数 Sub Sample1() Dim buf As String Open "C:\Sample\Data.txt" For Input As #1 Line Input #1, buf MsgBox buf Close #1 End Sub Line Inputステートメントは、1行分のデータを読み込むと、読み取りポイントを次の行に移します。つまり、Line Inputステートメントを繰り返すことで、テキストファイルの中を、1行ずつ、すべて読み込むことが

    Hamukoro
    Hamukoro 2017/04/12
  • OnTimeメソッド|VBA入門

    公開日:2013-06-07 最終更新日:2021-12-04 第120回.OnTimeメソッド 指定された時刻にマクロを実行させたい時、 今から一定時間後にマクロVBAを実行させたい時、 このような時に使うのが、OnTimeメソッドです。

    OnTimeメソッド|VBA入門
    Hamukoro
    Hamukoro 2017/04/12
    TimeValueはやばい
  • イミディエイトウィンドウの表示方法と使用方法 - Excel VBA

    VBEにはイミディエイトウィンドウというウィンドウを表示することができます。これは変数やプロパティの値を確認したい場合などに使用します。 使い方はとても簡単で、コード内に”Debug.Print”につづけて変数やプロパティを記述するだけです。こうすることで、処理中の情報をイミディエイトウィンドウに表示でき、処理の妥当性を簡単に確認することができます。 この方法もデバッグの基となります。ステップ実行と合わせてうまく使っていきましょう。

    イミディエイトウィンドウの表示方法と使用方法 - Excel VBA
  • TimeSerial 関数|VBScript関数リファレンス

    ASP の開発や SQLServer の DTS を作成する際、ど忘れしたVBScript関数を簡単に探せるように構成し直しました。 VBScript関数名は分かっていて、使い方や引数が思い出せない時などは普通のVBScriptヘルプで調べられますが、VBScript関数名が出てこない、○○をするVBScript関数ってあったっけ?、という場合はとても便利です。 TimeSerial(intHour, intMinute, intSecond) 引数に指定された時、分、秒に対応する時刻を含むバリアント型 (内部処理形式が日付型 (Date) の Variant) の値を返します。 引数 intHour 時を表す 0 (12:00 AM) ~ 23 (11:00 PM) の範囲の数値または任意の数式を指定します。 intMinute 任意の数式を指定します。 intSecond 任意の数式を

    TimeSerial 関数|VBScript関数リファレンス
    Hamukoro
    Hamukoro 2017/04/12
    TimeValueだと怒られる
  • Functionプロシージャ

    プロシージャには Sub プロシージャだけではなく Function と言うプロシージャが用意されています。 Function プロシージャの大きな特徴は呼び出し元に値を戻す事ができることです。その為、あたかも関数のように動作しますのでユーザー定義関数とも言います。ここでは Excel VBA で Function プロシージャの使い方について解説します。

    Functionプロシージャ
    Hamukoro
    Hamukoro 2017/04/12
    return
  • ファイルを開くダイアログ(GetOpenFilename)|VBA入門

    最終更新日:2021-10-05 第74回.ファイルを開くダイアログ(GetOpenFilename) VBAで開くファイルが、あらかじめ決められたフォルダに決められたファイル名で存在している場合は単純にOpenできますが、 都度ユーザーに開くファイルを選択してもらわなければならない場合もあります。

    ファイルを開くダイアログ(GetOpenFilename)|VBA入門
    Hamukoro
    Hamukoro 2017/04/12
    GetOpenFilename フルパス
  • 【VBA】例外処理(Try-Catch-Finally)を使う方法

    結論から言うと、VBAにはTry-Catch-Finallyが存在しない。 そこでOn Errorステートメントとラベルを使う。 一番簡単な例外処理(エラーハンドリング)は以下のとおり。 Sub ErrHandlingTest() On Error GoTo ErrorHandler Dim value As Long value = 2 / 0 '-- ゼロ除算のためエラー発生 Exit Sub ErrorHandler: '-- 例外処理 MsgBox Err.Number & ":" & Err.Description, vbCritical & vbOKOnly, "エラー" End Sub このようにすると、エラーが発生した時点で「On Error GoTo ラベル名」に指定したラベル名(上記の例ではErrorHandler)に飛ぶ。 エラーごとにキャッチしたい ひとつの例外しか

    【VBA】例外処理(Try-Catch-Finally)を使う方法
    Hamukoro
    Hamukoro 2017/04/12
    On Error GoTo
  • Office TANAKA - Excel VBA Tips[VBAでファイルの操作]

    FileSystemObjectオブジェクトを使うと、さまざまなファイル操作が可能になります。FileSystemObjectオブジェクトに関しては「FileSystemObjectオブジェクト」をご覧ください。 また、VBAにはファイルを操作するいくつかのコマンドが標準で用意されていますので、ちょっとした操作ならCreateObjectを使うまでもなく、それら標準のコマンドで済むケースもあります。ここでは、VBAコマンドを使った、次の操作について解説します。 ファイルをコピーする ファイルの名前を変更する ファイルを削除する カレントドライブとカレントフォルダについて フォルダの操作 ファイル操作のサンプル ファイルをコピーする ファイルをコピーするには、FileCopyステートメントを実行します。FileCopyステートメントの構文は次の通りです。 FileCopy source, d

    Office TANAKA - Excel VBA Tips[VBAでファイルの操作]
    Hamukoro
    Hamukoro 2017/04/12
    kill path で削除
  • Office TANAKA - Excel VBA関数[MsgBox]

    MsgBoxで、どんなときに括弧を使うのかと、メッセージを改行する"改行コード"について、詳しい解説を動画で公開しています。ぜひ、こちらもご覧ください。Youtubeでは、ほかにもたくさんの動画を公開しています。チャンネル登録をお忘れなく! Office TANAKAチャンネル ■VBAのコードで、括弧はどんなときに使うのか 構文 引数promptは必ず指定します、ダイアログボックスに表示するメッセージを指定します。 引数buttonは省略可能です。ダイアログボックスに表示する、ボタンの種類やタイプなどを指定します。 引数titleは省略可能です。ダイアログボックスのタイトルバーに表示する文字列を指定します。 引数helpfileは省略可能です。ダイアログボックスの[ヘルプ]ボタンから開くヘルプファイルを指定します。引数helpfileを指定する場合は、引数contextも必ず指定しなけれ

    Hamukoro
    Hamukoro 2017/04/12
  • VBAのOnTimeが実行されません。 - OKWAVE

    普通にできる手順: 1.標準モジュールを挿入する 2.その標準モジュールに sub Macro1() debug.print now application.ontime now + timeserial(0, 0, 2), "Macro1" end sub と作成する 3.VBE画面を見ながら,Ctrl+Gでイミディエイトウィンドウを出しておいて,Macro1を実行する イミディエイトウィンドウに,2秒ごとに時刻が表示されつづけたら成功。 ○もう一度,上述のその通りにやってみましょう。 ○もし上手く行ったら,あなたの上手く行かないマクロと一体「何が」違うのか,細かいところまで「全て」洗い出しましょう。 呼び出すマクロの名前の記入の仕方や,そもそもOntimeマクロと呼び出したいマクロを,それぞれどこに書いているのかなども。 ○そしてもっとも重要なポイントとして,今回のような「上手く行かな

    VBAのOnTimeが実行されません。 - OKWAVE
    Hamukoro
    Hamukoro 2017/04/12
  • データ入力の仕事を8時間→20分でできるようにしたら… by コピペ馬鹿 ~創造力の欠如~

    231 :名無しさん@12周年:2012/03/13(火) 10:42:56.94 ID:M2lOMwKQ0Excelへのデータ入力の仕事してて、 みんな8時間かけてひぃこらやってるのを横目に マクロと関数とOCR駆使して、20分でできるようにしたら ハッカー呼ばわりされてPC没収された上、 みんなのデータの検算を筆算でやらされるようになった 236 :名無しさん@12周年:2012/03/13(火) 10:43:44.40 ID:0CEsv3PN0>>231 マクロごときでハッカーの疑いってww どんな昭和の会社? 241 :名無しさん@12周年:2012/03/13(火) 10:45:16.96 ID:C/V4USsL0>>231 多数派の無能を暴露するようなことすると そういうことになるわな 287 :名無しさん@12周年:2012/03/13(火) 10:56:54.26 ID:M

    Hamukoro
    Hamukoro 2012/03/29
    せめて電卓使わせてやれよ
  • Excel:Bookが開いた時、自動的にVBAを実行する|auto_openマクロ

    Excel:Bookが開いた時、自動的にVBAを実行する - auto_openマクロ Bookが開いた時VBAが自動的に実行できると、操作方法のメッセージを表示したり、操作者を選択するなどが出来るようになります。 Homeに戻る > Excel ブックのTipsへ 標準モジュールに auto_open プロシージャを作成しておくと、ブックオープン時、自動実行でます。 ここに変数の初期化などの処理を入力できます。 auto_openマクロとも呼ばれています。 同様にアンロード時、自動実行させるには auto_close を作成しておきます。 関連するTipsの「ブックのイベント一覧」を掲載しています、参考にしてください。 auto_openイベントの入力方法1)イベントプロシージャを表示させる。 VBE画面左のプロジェクトのModule1をダブルクリックします。 ※.Module1は「モジ

    Hamukoro
    Hamukoro 2010/12/22
    Private Sub auto_open()
  • VB テキストファイル操作編

    【サンプルリスト】 '************************************** ' テキストファイルを1行単位に読み込む '************************************** Private Sub Command1_Click() Dim fileNo As Integer Dim buf fileNo = FreeFile                        'ファイル番号の取得 Open "TESTFILE.TXT" For Input As #fileNo 'ファイルを読込モードで開く Do Until EOF(fileNo)                     'EOFになるまでループ Line Input #fileNo, buf                'ファイルから1行読み込む Debu

    Hamukoro
    Hamukoro 2010/10/26
    VB6
  • マクロを使ってWordのテキスト貼付を簡単にする方法 | ライフハッカー・ジャパン

    そこで、Wordのマクロ機能を使ってキーボードからのショートカットキーを作り、テキスト貼付けを簡単にする方法のご紹介です。 米Lifehacker読者のWilleさんによると、ショートカットキーを設定するためのマクロは、以下の4ステップに沿って作成できます。 ステップ1: メニューバー「ツール(T)」→「マクロ(M)」→「マクロ(M)」で、マクロ名「PasteSpecial」とする新規マクロを作成 ステップ2: マクロのコードとして以下をコピペする Sub PasteSpecial() Selection.PasteSpecial DataType:=wdPasteText End Sub ステップ3: メニューバー「ツール(T)」→「マクロ(M)」→「新しいマクロの記録(R)」で、マクロ名に「PasteSpecial」を入力し、「キーボード(K)」をクリック ステップ4: 左側の「分類(

    マクロを使ってWordのテキスト貼付を簡単にする方法 | ライフハッカー・ジャパン
    Hamukoro
    Hamukoro 2009/05/09
    つまり、形式を選択して貼り付けだろ?
  • 【ハウツー】ゼロからはじめるVBA − VBA事始め編 (1) VBAでプログラミングをはじめよう | パソコン | マイコミジャーナル

    はじめに 前回の説明で、Excel表にマクロの記録を使ってマクロを作成し、動かすことができるようになりました。もっとも、マクロを作成する方法は[マクロの記録]だけではありません。[マクロの記録]機能を使わずとも、VBE(Visual Basic Editor)にVBAのコードを直接書き込むことでもマクロを作成することができます。今回は、VBAで一からマクロを作成する方法について説明したいと思います。 VBAでプログラミングを始める方法 VBAでプログラムを作成するには、まずワークブックを新規作成した後、[開発]タブ −[Visual Basic]アイコンでVBEを表示します。 図1[Visual Basic]アイコン 左端に標準モジュールが表示されてない場合、[挿入]−[標準モジュール]で、コードを入力するためのウィンドウを表示させます。この画面をVBEといい、ここでプログラムの編集を行い

  • 1