VBAの勉強を始めてみた

タイトルの通りVBAの勉強を始めました。効率化と暇つぶしを兼ねています。ブログの書き方なんて知りません分かりません。

色んなプログラミング言語をやりたい・・・・・・やりたいよぅ(雑記-3)

こんにちは、永遠の黒歴史 好天です。今回は雑記です。 ☆JavaScriptやりたい、C#もやりたい・・・VBAだけではなく色んな言語をやってみたいのが本音です。・・・が、そこそこの年齢になってくると、悲しいかな何かを始める前に費用(時間)対効果があるのかないの…

EXCEL表をTableタグ(HTML)に変換する 其の弐

前回、エクセルの表をHTML(Tableダグ)に変換するという勉強をしましたが、あとから文字の水平位置くらいは指定できたほうがいいんじゃね?と思ったので、今回は前回のコードを改良し、見出し以外の文字の水平位置を指定できるようにしました。 前回の…

Round関数の戻り値が違う?(ワークシート関数とVBA関数の違い)

Round関数が返す値はVBA関数とワークシート関数(俗に言うEXCEL関数)で違います。EXCELでのRound関数はご存知のとおり、引数で指定した桁数で四捨五入を行うものですが、VBAでは偶数丸め(ISO丸め、銀行丸めなどとも呼ばれる)という処理を行います。 具体…

エクセルでどんなことがしたい?(雑記-2)

エクセル素人研究室室長の好天です。('ω')ノ今回はちょっとした雑談です。 ・エクセルでやりたいことは千差万別エクセルで何をどうしたいかは、人によって、さらに状況によって千差万別だと思うので、当ブログに記載しているようなガベージなマクロは使…

同じ文字を下方向へnセル分貼り付ける

例えばこんな文字がクリップボードにあります。 これをアクティブセルから下方向にnセル分貼り付けるマクロを作ってみました。 アクティブセルから下方向に123セル分貼り付けてみます。マクロを実行したあとに表示されるInputBoxに「123」を入力しOK。 こ…

EXCEL表をTableタグ(HTML)に変換する

HTMLで表(Tableタグ)を記述するのは、結構骨の折れる作業です。はてなブログでは視覚的に作表する機能がありませんので、地道にHTMLで記述する(または、はてな記法で記述する)しかありません。そもそもHTMLエディターにしたって、表作成には特化していな…

CSV形式でクリップボードにコピーする

今回は、選択した範囲のデータをCSV形式にしてクリップボードへコピーするマクロを作ってみました。こんな感じです。 CSV形式でコピーしたい範囲を選択し、マクロを実行します。 こんな感じでCSV形式でコピーされます。 メモ帳などに貼り付けて、拡張子を.cs…

インスタンスの生成について

前回は外部ライブラリを参照設定する方法を説明しました。今回は外部ライブラリのオブジェクトを使ってコーディングする方法を書いてみたいと思います。 まず、外部ライブラリのオブジェクトは参照設定するだけでは使用できないので、NEWキーワードを使って…

外部ライブラリの参照設定について

当ブログでちょくちょく外部ライブラリ(Microsoft Forms 2.0 Object Libraryなど)を使用したコードを掲載していますが、今回は外部ライブラリの参照設定について説明したいと思います。 まず、外部ライブラリとは何ぞや?ということですが、ざっくり言うと…

マクロを高速化する(画面表示の更新をオフにする)

今更、私が書く必要もないかもしれませんが、マクロを高速化するために最も効果があると謳われる、 Application.ScreenUpdating プロパティ の設定について紹介しておく必要があろうかと思います。 プロパティの設定はTrueかFalseの2通りです。Application.S…

VBAは仕事の役にたっているか?(雑記-1)

VBAの勉強を始めてはや5ヶ月近く・・・・・・。ちょっとだけ便利なマクロを細々と作成してきました。 実際のところ仕事に役立っているかどうか? 答えは半々といったところでしょうか。何故なら仕事はEXCELオンリーではないからです。体を動かす肉体作業もあれば、…

マクロにパスワードを設定するには

第三者にマクロの内容を覗かれたり、変更されたりしないようにパスワードを設定することができます。例えば、マクロを改変されたら業務に支障をきたす、マクロをパクられたくない、マクロの内容を見られるのが恥ずかしい・・・・・・等々、人によって理由は様々だ…

数字を計算可能な数値に変換する

ここに外部アプリケーションが出力したEXCELファイルがあります。 SUM関数で数値を合計をしようとしたのですが、画像のように計算結果が「0」になってしまいました・・・・・・。 結論からいうとこれはセル内にカンマが存在し文字列扱いとなっているためです。書式…

数式を相対参照にする

今回は絶対参照になっている数式を相対参照にします。数式内のセル参照を絶対参照⇔相対参照に変更するには・・・・・・数式内の変更したい部分にカーソルを合わせてF4キーを押せば、以下のように順番に切り替わっていきます。 行列とも絶対参照→行のみ絶対参照→列…

数式を列のみ絶対参照にする

数式内のセル参照を絶対参照に変更するには・・・・・・数式内の変更したい部分にカーソルを合わせてF4キーを押せば、以下のように順番に切り替わっていきます。 行列とも絶対参照→行のみ絶対参照→列のみ絶対参照→行列とも相対参照(に戻る) でも、変更したい数式…

数式を行のみ絶対参照にする

数式内のセル参照を絶対参照に変更するには・・・・・・数式内の変更したい部分にカーソルを合わせてF4キーを押せば、以下のように順番に切り替わっていきます。 行列とも絶対参照→行のみ絶対参照→列のみ絶対参照→行列とも相対参照(に戻る) でも、変更したい数式…

数式を絶対参照にする

数式内のセル参照を絶対参照に変更するには・・・・・・絶対参照にしたい部分にカーソルを合わせてF4キーを押せば、下記のように順番に切り替わっていきます。 行列とも絶対参照 行のみ絶対参照 列のみ絶対参照 行列とも相対参照(に戻る) でも、変更したい数式が…

標準モジュールにVBAのコードを貼り付けてマクロを使用するには

当ブログを含め、ネット上にはあまたのVBAコードが記載されたWebページが存在します。そこで見つけたお気に入りのマクロをコピー&ペーストし、自分のパソコン(EXCEL)で使用するには、どうすればいいのか?今回はVBEの起動から、標準モジュールへのコード…

右からn文字目の前に改行を入れる

右から数えてn文字目の前に改行を入れます。対象となるセルを選択した状態でマクロを実行して下さい。 試しに「5」を指定します。 右から数えて5文字目の前に改行が入りました。 複数のセルの特定の位置に改行を入れたいけど、対象となるセルが多すぎて一つ…

左からn文字目の後ろに改行を入れる

左から数えてn文字目の後ろに改行を入れます。対象となるセルを選択した状態でマクロを実行して下さい。 試しに「5」を指定してみます。 左から数えて5文字目の後ろに改行が入りました。 複数のセルの特定の位置に改行を入れたいけど、対象となるセルが多す…

小数第n位以下を四捨五入する

小数点n位以下を四捨五入したいセルを選択して、マクロを実行します。 InputBoxに四捨五入したい小数点以下の桁数を指定します。例えば、小数第三位以下を四捨五入する場合は「3」を入力します。 これで小数第三位以下が四捨五入され、小数第二位までの数値…

文字の冒頭に指定した文字を追加する

セルにあらかじめ入っている文字列(文字列以外でも可)の冒頭に、InputBoxで指定した文字を追加します。 実行前 実行後 選択したセル範囲(可視セルのみ)に対し、For Each Nextで下記の処理を行います。 オブジェクト.Value = 変数(InputBoxで入力された…

文字の末尾に指定した文字を追加する

セルにあらかじめ入っている文字列(文字列以外でも可)の末尾に、InputBoxで指定し た文字を追加します。 実行前 実行後 選択したセル範囲(可視セルのみ)に対し、For Each Nextで下記の処理を行います。 オブジェクト.Value = オブジェクト.Value & 変数…

表をオリジナルの順番で並び替える

Sheet1に人口順に並んだ、47都道府県の表があります。この表を北から順番(北海道→青森→岩手・・・のように)に並べ替えるにはどうしたらいいでしょうか?EXCELの標準機能では昇順・降順、あいうえお順、日付順、曜日順等で並べ替えることはできますが、人間の…

選択範囲のデータをカンマ区切りでクリップボードに格納する

選択したセル(複数選択可)の文字列を、カンマ区切りでクリップボードに格納します。選択したセルが結合セルでも、余分なTabや改行を含まず単一セルと同じような扱いでクリップボードに格納できます。次回掲載予定のマクロと組み合わせて使用するためのもの…

ピボットテーブル用の元データに年度・四半期・月フィールドを作成する

ピボットテーブルを使用すると、大量のデータを様々な角度から集計できて便利なのですが・・・・・・、ピボットテーブルには何故か「年度」というグループ分け機能が搭載されていないため、年度ごとに集計を行う場合には非常に不便です。 例えば、集計や累計などは…

マクロをクイックアクセスツールバーに登録する

今回はマクロをクイックアクセスツールバーに登録してみたいと思います。クイックアクセスツールバーを編集するには・・・・・・ リボンのタブ内で右クリックし「クイックアクセスツールバーのユーザー設定」を選択します。(ファイル-オプション-クイックアクセ…

マクロをリボンに登録する

今回はマクロをリボンに登録してみたいと思います。リボンを編集するには・・・・・・ リボンのタブ内のどこでもいいので右クリックして「リボンのユーザー設定」をクリックします。(ファイル-オプション-リボンのユーザー設定からでも同じように入れます) リ…

クリップボードのデータを結合セルへ貼り付ける

通常、クリップボードのデータを結合セルに貼り付けようとすると・・・・・・ このように、「この操作は結合したセルには行えません」等のエラーメッセージが表示され、貼り付けることができません。 そのようなモヤモヤを解消し、ストレスなく仕事を行うために今…

左からn文字目の文字を置換する

左から数えて、n文字目からx文字分を、指定した文字列に置換するマクロを作ってみました。 例えば、下の画像では4文字目から3文字分を顔文字に置換してみます。 文字ではなく空白を指定した場合は、4文字目から3文字分が削除されます。 4文字目から0文字分と…