カテゴリー: Microsoft Office (1ページ目 (2ページ中))

【Word VBA】テキストの書き換え方法

Excelでセル指定をして内容を書き換えるWord版みたいな感じです。
WordのVBAって記事自体少なくて苦労したので備忘録用に。

Excelであれば、セルの値書き換えは比較的簡単に行えると思いますが、
Wordは場所の指定が出来ない?ので、そんなときの方法をご紹介です。

 

■作ったもの
「Commnad Button」を押したときにテキストを書き換えます。

 

■かんたん解説(画面上のオブジェクトとかについて)
Word内のテキストを書き換え、挿入を行う為には、
「テキスト コンテンツ コントロール」というものを使用します。

「■作ったもの」にある「テスト1」、「テスト2」も通常のテキストではなく、
「テキスト コンテンツ コントロール」の中に入っているテキストになります。
※「test1」、「test2」は、このコントロールのタイトル情報になります。

 

■サンプルコード

 

■かんたん解説(サンプルコードについて)
3行目:変数定義、コンテンツ コントロールを扱うときはコレみたいです。
5行目:Word文書内の各コンテンツ コントロールに対して繰り返し処理を行う。
7行目:コンテンツ コントロールのタイトルが「test1」のとき、「テキスト1」に書き換える。

コードについての解説は間違ってるかもしれません、、
もっといいコードの書き方もあると思うので、参考程度にお願いします。

【Word】ActiveXテキストボックスの影をなくす方法

WordでActiveXコントロールのテキストボックスを使用するとき
テキストボックスの外枠に影っぽいのがついてて邪魔だったので回避方法ご紹介です。

 

開発タブより、デザインモードに変更しテキストボックス上で
右クリックするとプロパティが開けます。
設定箇所は画面左側の「SpecialEffect」です。

 

設定には6種類あり、すこしずつ表示が異なります。
以下画像を参考にして頂ければと思います。

※ちなみに①はテキストボックスの影がないパターンで、
 ③がデフォルトで表示されるものです。


【VBA】新規または既存のファイルをひらく

1.新規のエクセルファイルを立ち上げる
2.既存のエクセルファイルを開かせる
3.既存のエクセルファイルを開かせる(パスワード付き)
4.読み取り専用で開かせる

 


1.サンプルコード(新規エクセルファイル)

これで新規のブックが起動します。(ファイルとしては存在せず、メモリ上だけにあるみたい?)

保存まで行わせたい場合は以下。
「C:\Users\Documents」に「sample.xlsx」ファイルを作成します。

 

 


2.サンプルコード(通常のエクセルファイル)

サンプルと呼ぶのもおこがましいですが、”C:\新しいフォルダ”配下にある
Sample_Books.xlsxという名前のエクセルファイルを開くよというものです。

 

 


3.サンプルコード(パスワード付きエクセルファイル)

エクセルファイルに「TEST」というパスワードが掛かっていた場合、
2のようなコードとすると、パスワード入力画面で処理が止まります。

入力画面を表示させずにファイルを開くためには、
サンプルのようにパスワードを定義する必要があります。

 

 


4.サンプルコード(読み取り専用)

このようにすると、ファイルを読み取り専用で開いてくれます。

【VBA】文字列の中間を抜粋する方法

Left関数、Right関数を使った両サイドの抜粋は結構あるのですが、
中間だけの抜き出しが調べても見つけられなかったので。

 

例えば、こんな感じに抜粋したいときは以下の手順になると思います。

1.アンダーバー(_)までの文字数を調べる。
2.mid関数でアンダーバー以前をカットする。
3.ドット(.)までの文字数を調べる。
4.left関数で名前までを引き抜く。

 

■サンプルコード

 

★ちょこっと解説

・各変数時点での値
A → 12345_田中一郎.xlsx
B → 6
C → 田中一郎.xlsx
D → 5
E → 田中一郎

 

・各関数について
InStr → 特定文字の検索が行えます。(左から何文字目にあるか。)
       =InStr(”元の文字列”,”検索したい文字列”)

Mid → 文字列の途中を抜き出す。
         =Mid(”元の文字列”,”何文字目から取り出すか”,”何文字取り出すか”)

Left → 左から指定文字数目までを取り出す。
        =Left(”元の文字列”,”取り出したい文字数”)

【Excel】図形のみを一括選択する方法

例えば↓こんな感じで、たくさん図形がある時に全て選択する場合に
Shiftとか押しながらチマチマ選択してたりしてませんか?(私がやってました。。)

 

そんなときに便利な画像だけの範囲選択、シート内の画像全選択の方法をご紹介します。

 

1.Excelのオプションを開く

「ファイル」タブから「オプション」を選択する。
 ※「オプション」の位置がEXCELのバージョンで違うかもしれませんが問題ありません。

 

2.ツールバーに「オブジェクトの選択」を追加する

Excelのオプションから「クイックアクセスツールバー」を選択。
 ※コマンドの選択は「すべてのコマンド」にします。
「オブジェクトの選択」をクリックして追加ボタンを押し、OKで画面を閉じる。

ツールバーへマウスのマークが表示されていれば大丈夫。

 

3.図形をまとめて選択してみる。

上で追加したマウスマークをクリック後に範囲選択を行いと
簡単にまとめて選択することが可能です。とっても便利なのでオススメです!

 

 

※補足

範囲選択ではなくシート内の図形、画像をすべて選択したい場合は
「Ctrl + A」でいけます。

【Excel】全シート名を取得する

初めに方法についてですが、イミディエイトウィンドウで以下を実行するだけでです。

 

これだけだと意味分からん!という私みたいな人もいると思いますので、
やり方とか簡潔に書いておきます。

 

1.「Sheet1」から「Sheet8」までのシート名を抜きたい!

 

2.「開発」タブから「Visual Basic」を選択すると「Microsoft Visual Basic for Applications」という
  ウィンドウが新規で立ち上がります。(※ショートカットキーの場合は「ALT + F11」)

 

3.↓画面のように「表示」→「イミディエイトウィンドウ」をクリック(※CTRL + Gでも可)
  画面右下に「イミディエイトウィンドウ」が現れます。(元から出てる時もあるかも)

 

4.本ページトップで紹介した文字列を張り付けて「Enter」でシート名の取得完了です。

【Excel】文字列の結合&セル内での改行方法

目次

文字列の結合(関数なし)

セル内での改行(関数なし)

文字列の結合、改行(関数使用)

 

 


□文字列の結合(関数なし)

例えば「みかん」「が」「食べたい」を1つのセルに入れたいときは「&」を使用します。
計算式のところにもある通り、各セルをくっつけてあげる感じでしょうか。

 

 


□セル内での改行(関数なし)
  ※EXCELはセル内で「ALT + ENTER」で改行が行えますが、それと同じことをします。

改行を行いたい時は、「CHAR(10)」というものを使用します。

この例の場合、「みかんが」+改行+「食べたい」の形としたいので
「A2」「B2」を結合、CHAR(10)で改行を入れて「C2」を結合のイメージですかね。

 

 


□文字列の結合、改行(関数(CONCATENATE)使用)

CONCATENATE(文字列1,文字列2,文字列3...) ←使うときはこんな感じの形式で。
CHAR(10)とかでも文字列として扱ってくれるみたいですね。

【Excel VBA】命令、使い方

※気が向いたときに更新予定です。

命令 簡単に使い方(使用例)
Dim 関数定義。
使用例:「Dim a」
実行結果:関数「a」の定義
Cells 特定セルの指定。
使用例:「Cells(2,3)」
実行結果:2行目3列目のセルが指定できる
Interior.Color 背景色の設定。
使用例:「Cells(2,3).Interior.Color = RGB(255, 192,128)」
実行結果:2行目3列目のセルの背景色をオレンジにする。
CInt、CLng 文字列を数値型に変換。
使用例:CInt(“&HFF”)
実行結果:数値「255」に変換される。

【Excel VBA】16進数から背景色の設定

今回はVBAで16進数からRGB値を算出し、
それに対応した背景色を設定する方法について(以下参考)

マクロは以下のコピペで動くと思います。(A2に16進数が入力されていることが前提)

■5行目
 →関数「R」「G」「B」を定義する。

■7行目
 →まず、Mid関数で「A2」セルの下2桁を抽出します。
  その後、頭に「&H」を付け、「&HAF」の文字列にする。
  CInt関数で数値型に変換を行うと「&HAF」→「175」になり、
  Rの値が算出できます。(8、9行目も同様なイメージ)

■11行目
 →7、8、9行目で出した値を
  「C2」、「D2」、「E2」の各セルへ格納

■15行目
 →Interior.Colorにて「F2」の色を
  RGB値に対応した色で塗りつぶします。

 

※補足(RGB値の設定箇所について)

背景色が設定されているセルにフォーカスを当てた状態で
塗りつぶしアイコンから「その他の色(M)」で以下の画面

« Older posts