2018年 11月 の投稿一覧

セルの中身を調べる セル内の関数・計算式を調べる VBA マクロ Formulaプロパティ

Valueプロパティはよく使うプロパティですね。

ただ、場合によっては関数の返り値ではなく、

セルの中の計算内容や、関数を調べたい! 分岐させたい! というときは Range. Formula プロパティを使用します。

 

画像のようにA1セルに計算式があります。

 

マクロでA2の セルに A1セルの 数式を表示させてみます

 

しっかり表示させることができました♪

 

ではでは(゜o゜)

セルの文字を 縮小して全体を表示する VBA マクロ ShrinkToFitプロパティ

セル内の文字を全て表示させたいときの方法として、

①セルの文字を縮小表示する

②折り返し表示をする

③改行をする

方法を使うかと思います。

 

今回は①の縮小表示をするマクロをご紹介します。

Range. ShrinkToFit プロパティで縮小表示の設定ができます。

こんな感じのセルの文字が

きっちりセル内に表示されます♪

サンプルコードは下記

ではでは§^。^§

マクロ初心者必見! まず覚えておくと便利なプロパティ5選!

マクロ初級者にとって、オブジェクト・プロパティ・メソッドは新しい概念で覚えることが難しいかと思います。

その中で今回はまずは覚えておきたいプロパティ一覧をご紹介します♪

まずはといえども、上級になってもよく使うプロパティです。

 

Nameプロパティ

 

オブジェクト名.Nameで値の取得・設定ができます。

シート名の取得・設定とかセルの値の取得・設定ができます。

例 ActiveSheet.Name = ”気ままにエクセルVBA”

 

Countプロパティ

オブジェクト名.Countでオブジェクトの数を数えることができます。

例 シート名の数とか配列の数の取得ができます。

例 Debug.Print WorkSheets.Count

 

Indexプロパティ

オブジェクト名.Indexでオブジェクトの数を数えることができます。

例 シート番号の取得やチャート番号の取得ができます。

例 Debug.Print Activesheet.Count

 

Offsetプロパティ

Rangeオブジェクト.Offset(行、列)で指定したセルから移動したセルの値の取得・設定ができます。

指定したセルから離れたセルを取得・設定したいときに使用します。

例 Debug.Print Range(“A1”).offset(1,0).value

 

Endプロパティ

Rangeオブジェクト.Offset(行、列)で指定したセルから移動したセルの値の取得・設定ができます。

任意の行・列の最後の行を調べるときに使用します。

Controlキー + 矢印(←↑→↓)キー と同じ動きをします。

 

例 Debug.Print Range(”A1″).End(XltoRight).Value

 

シート番号・シート名に対して処理をするマクロ

 

プロパティ・メソッドはたくさんあって覚えられませんよね。

ただ、頻繁につかうものあまり使わないものがあるのでまずは頻繁につかうプロパティをどんどん使っていきましょう♪

自然とこういう場合ならどのプロパティ使えばいいのかわかってきます。

 

ではでは♪

セルの結合を解除するVBA マクロ・セルの結合をするVBA

個人的にも、VBA使いにとっても、嫌いなセルの結合

セルの結合の解除はUnMergeメソッドを使用します。(実務でちょいちょい使いますw)

サンプルコードは下記

※セルの結合を解除して、文字列を左に寄せています。

 

セルの結合をするには Mergeメソッドを使用します。(実務で一度も使用したことありませんがw)

 

リストの見出し部分ならまだしも、

リスト内でそもそもセルの結合をさせるメリットがありません。あるのは残念なほどのデメリットばかりです。

 

セルの結合のせいでマクロはもちろんのこと、シート関数すら使えないこともあります。

 

見映えがいいからという意見がありますが、デメリットを上回るほどのメリットになっていません。

見映えならセルの結合以外の方法を考えましょう。

 

ではでは♪

指定したシート番号・指定したシート名を処理する VBA マクロ

シートに対して、なになにする~というマクロを書く基本は

ForEach構文を使用します。

ForEach構文の使い方を覚えてしまえばシートが何百枚あろうがIF文で分岐させてサクッと処理させることができます。

 

シート3を処理したいという時のサンプル

シート名がSheet3を処理したいという時のサンプル

 

ではまた♪

シートの見出しを非表示にする 見出しを表示する VBA マクロ

えぇーぃ! 見出し(行番・列名)が邪魔だ!っていうときがあるかもしれません笑

マクロで見出しの表示非表示をするには ActiveWindow のプロパティDisplayHeadings を True/Falseにします。

 

サンプルコードは下記


ではでは♪~゜・_・゜~

目盛線を非表示にする 目盛り線を表示する VBA マクロ

エクセルでマニュアルや説明書を書くとき、目盛線を非表示にすると文字が映えて見やすくなりますよね♪

てなわけでマクロで目盛線の表示・非表示をするには

ActiveWindowのプロパティDisplayGridlinesをTrue/Falseにして変更できます♪

サンプルコードは下記

 

ではでは(^^)

重複する文字のセルに色を塗る・削除する VBAマクロ

重複セルの抽出作業はよくある作業かと思います。

エクセルの機能で重複に色を塗る(条件付き書式)・重複を削除する機能(重複の削除)がありますが、

任意の文字にする場合の条件指定が面倒だったりしますし、いつも行う作業ならマクロで処理するべきです。

下記サンプルでは「りんご」という文字列に対して処理を行うマクロをご紹介します。

 

 

 

 

 

 

 

 

 

列内の任意の文字列の重複セルに色を塗るマクロは下記サンプル(サンプルはA列です。)


列内の任意の文字列の重複セルを削除するマクロは下記サンプル(サンプルはA列です。)

※Fornext構文でループさせてIf分で分岐させてます。

行やセルの削除については、Fornext構文にStep-1 とすることで行番のずれを防げます。

 

 

全てのセルから任意の重複する文字に色を塗るマクロは下記サンプルです。

UsedRangeでセルの範囲全てを変数Rngに格納してます。

 

条件付き書式でちまちま設定するよりやはりマクロの方が楽ちんですw

 

ではでは♪

リンクを更新しないで開く マクロ VBA ブックを開く時に警告を出さない VBA マクロ

ブックを開くマクロを書いても警告が出てせっかく書いたマクロがうまくいかないことがあります。(ー_ー)

これを回避するには、Workbooks.Openメソッドの引数

 

UpdatelinkFalseにしましょう!

 

サンプルコードは下記です。Sampleというブックを開くときにリンク更新の警告を表示させないようにしています。

ブックを開く際のマクロではあるあるパターンなので覚えておきましょう♪

 

ではでは!

Excelのテーブルってなんぞや? テーブル機能を使えばVlookUpが更に便利になる!

そもそもテーブルって何だ、イメージが沸かないという方は多いかと思います。

 

一言でいえば テーブルとは範囲のことです。

 

テーブルにはどんな機能があるかを下記に思いつく限りまとめてみました。

 

1、関数の参照がしやすい。

2、自動連番に対応している

3、行・列の追加・削除がしやすい

 

テーブルの一番有用な機能は1だと思ってます。

みなさん大好きVlookUp関数の参照範囲を最初から最後の行まで追跡してくれます♪

新しい商品リストの登録があったときなど、VlookUpの参照範囲を都度変更しなきゃならないのはあるあるだと思います。

参照元をテーブルにすれば、そんな非生産的で煩わしい作業から解放されます♪

 

テーブルを参照にしたVlookUpの使用方法は下記です。

C・D列はテーブルです(テーブル名:テーブル1としています。)。B2セルに品名を表示するサンプルです。

=Vlook(範囲(テーブル),調べるセル,テーブル範囲の列番(サンプルではテーブルの2列目なので2としています。),False)

 

有用点の2についてはテーブルの最終行の下のセルに新規入力したときテーブルの範囲に自動追加されます。

有用点3については実際に動かしてみてくださいww

 

今後どこの会社でもテーブル機能に限らずエクセルの色んな機能を使うことが多くなると思います。

会社に一人はエクセルの機能を理解している人がいないと会社が時代のスピードに取り残されてしまうことになってしまいます。

そんな時代でも生き残っていくにはITは必須です。

どんどんITを理解して自分も会社もハッピーになれればいいんじゃないかなと思います♪

 

ではでは(^^)