プログラム初心者VBA入門ブログ

単純作業を自動化したい!けどプログラミングなんてわかんない!という方向けのVBAレクチャーブログです♪

第29回「VBAでExcelに挿入する画像の大きさや位置を変更しよう!」

はい!どうも、つのかぼちゃです!

 

今回は、

画像ファイルを選択してExcelに挿入したときに

画像の位置や大きさを決められるプログラムを書いていきます!

 

まずはプログラムから!

 

f:id:vba-business999999:20180829202839p:plain

 

これだけです!!

 

では解説していきますね!

 

Dim failnonamae As String

⇒ failnonamae は文字列ですよー!

 

failnonamae = Application.GetOpenFilename

エクスプローラーを開いてファイルを選択!

 

ActiveSheet.Shapes.AddPicture _
Filename:=failnonamae, _
LinkToFile:=False, _
SaveWithDocument:=True, _
Left:=50, _
Top:=50, _
Width:=200, _
Height:=200

⇒画像の左の位置を50、上の位置を50、幅を100、高さを100で画像挿入!

 

以上です!

 

※ちなみに『_』は改行しますよマークなので

 ActiveSheet.Shapes.AddPicture _
 Filename:=failnonamae, _
 LinkToFile:=False, _
 SaveWithDocument:=True, _
 Left:=50, _
 Top:=50, _
 Width:=200, _
 Height:=200

 は

  ActiveSheet.Shapes.AddPicture Filename:=failnonamae, LinkToFile:=False, SaveWithDocument:=True, Left:=50, Top:=50, Width:=200, Height:=200

 でも同じです!

 

これで好きな大きさ、位置でExcelに画像を挿入できます!

さらにFor文を使えば連続で何個も自動で画像挿入することも可能です!

 

おつかれさまでした~!

第28回「ファイルの大きさによって入稿可否を決定!」

はいどーも!つのかぼちゃです!

 

今回はファイルの大きさによって

Excelに画像を挿入するかしないか判断するVBAマクロを

作成していきます!

 

まずプログラムです!

 

f:id:vba-business999999:20180809220345p:plain

 

第27回のプログラムにさらに付け加えた感じですね!

では解説していきます!

 

Dim foldanonamae, filemoookisa As String

VBAさん!foldanonamae と filemoookisa は文字だよ!

 

foldanonamae = Application.GetOpenFilename

エクスプローラーを開いて、フルパスを foldanonamae に代入してね!

 

filemoookisa = FileLen(foldanonamae)

→ filemoookisa に foldanonamae(=選択した画像)のバイト数を代入!

 

If InStr(foldanonamae, ".png") > 0 Then

→もし foldanonamae(=選択した画像のフルパス)に「.png」が入っていたら

 

If filemoookisa < 40000 Then

→filemoookisa(=選択した画像のバイト数)が40000バイト未満なら

 

Worksheets("Sheet1").Pictures.Insert(foldanonamae).Select

→「Sheet1」にフルパスが foldanonamae の画像(=選択した画像)を挿入してね!

 

Else

→それ以外の場合


Call MsgBox("40000バイト以下のファイルにしてちょ")

→メッセージボックスに「40000バイト以下のファイルにしてちょ」と出力


End If

→もしもの話は終わり!


Else

→それ以外の場合


Call MsgBox("png形式のファイルにしてちょ")

→メッセージボックスに「png形式のファイルにしてちょ」と出力


End If

→もしもの話は終わり!

 

以上です!

 

今回は IF 文の中に IF 文があるので

少しわかりにくいかもしれません。

そんなときは樹形図を描くといいかもしれません!

 

ではではプログラムを実行してみましょう!

 

エクスプローラーが開きましたね

f:id:vba-business999999:20180807200544p:plain

 

png形式の40000バイト以上のファイルを選択!

f:id:vba-business999999:20180809221712p:plain

 

すると!

 

f:id:vba-business999999:20180809221815p:plain

 

ちゃんとメッセージボックスに

「40000バイト以下のファイルにしてちょ」と出力されました!

 

 

ちなみに

プログラムを実行して、

png形式のファイル以外を選択すると

 

f:id:vba-business999999:20180807205212p:plain

 

png形式のファイルにしてちょ」と出力されます。

 

そしてpng形式のファイルを選択すると

 

f:id:vba-business999999:20180807202839p:plain

 

ちゃんと挿入されます!

 

おつかれさまでした!

いかがだったでしょうか?

次回は挿入する画像の大きさを指定するプログラムを作っていきます!

 

おたのしみに!

 

第27回「エクセル挿入時にファイル形式によって挿入をはじく方法!」

へいよー!つのかぼちゃーです!

 

はい!今回は、

「エクセル挿入時にpng形式以外のファイルをはじく方法」

について書いていきます!

 

それではさっそくプログラムにレッツゴー!!

 

 

f:id:vba-business999999:20180807204343p:plain

 

第26回で作ったプログラムに If 文を付け加えました!

 

では解説していきます!

 

Dim foldanonamae As String

→ VBAさん!foldanonamae は文字だよ!

 

foldanonamae = Application.GetOpenFilename

エクスプローラーを開いて、フルパスを foldanonamae に代入してね!

 

If InStr(foldanonamae, ".png") > 0 Then

→もし foldanonamae(=選択した画像のフルパス)に「.png」が入っていたら

 

Worksheets("Sheet1").Pictures.Insert(foldanonamae).Select

→「Sheet1」にフルパスが foldanonamae の画像(=選択した画像)を挿入してね!


Else

→それ以外の場合


Call MsgBox("png形式のファイルにしてちょ")

→メッセージボックスに「png形式のファイルにしてちょ」と出力


End If

 →もしもの話は終わり!

 

 

 以上です!

 

では実行してみましょう!!

 

エクスプローラーが開きましたね

f:id:vba-business999999:20180807200544p:plain

 

png形式以外のファイルを選択!

f:id:vba-business999999:20180807205136p:plain

 

すると!

 

f:id:vba-business999999:20180807205212p:plain

 

ちゃんとメッセージボックスに

png形式のファイルにしてちょ」と出力されました!

 

 

ちなみに

プログラムを実行して、

png形式のファイルを開くと

 

f:id:vba-business999999:20180807202839p:plain

 

ちゃんと挿入されました!

相変わらずキュートですねぇ~!!!

 

今回はここまでです!

このプログラムを使えば、

入稿の際に

「指定したファイル形式と違う!!」

などのチェックが大幅に楽になります!

ぜひ使ってみてくださいね!

 

入稿と言えば、

画像のサイズも大事ですよね!

 

ということで次回は今回のプログラムを

画像ファイルのバイト数によって

画像を挿入するか判断するプログラムに進化させます!

 

お楽しみに~♪

第26回「好きな画像をエクセルに挿入するプログラム!!」

はい!どうも!つのかぼちゃです!

 

今回は

「好きな画像をエクセルに挿入するプログラム」

を書いていきます!

 

それではさっそくプログラムです!!

 

f:id:vba-business999999:20180807203246p:plain

 

3行!!!

短いですね~!

 

では解説してきます!

 

Dim foldanonamae As String

VBAさん!foldanonamae は文字だよ!

 

foldanonamae = Application.GetOpenFilename

エクスプローラーを開いて、フルパスを foldanonamae に代入してね!

 

Worksheets("Sheet1").Pictures.Insert(foldanonamae).Select

→「Sheet1」にフルパスが foldanonamae の画像(=選択した画像)を挿入してね!

 

以上です!

 

では実行してみましょう!

 

エクスプローラーが開きましたね

f:id:vba-business999999:20180807200544p:plain

 

②好きなファイルを選択!

f:id:vba-business999999:20180807201054p:plain

 

すると~?

 

ドン!!!

f:id:vba-business999999:20180807202839p:plain

 

つのかぼちゃの自画像が挿入されました!

キュートですね!!

 

はい!今回はここまでです!

おつかれさまでした!

 

次回は今回作成したプログラムを

画像のサイズやファイル形式によって挿入をはじくプログラムに進化させていきます!

 

ぶっちゃけ今回のプログラムじゃ

エクセルの挿入機能と同じですもんね!

ここから進化させていきましょう!!! 

第25回「VBAでフォルダを開く!~ファイルパスの取得方法~」

はい!どうも!つのかぼちゃです!

 

今回はエクセルVBAでフォルダを開くやつのやり方を解説していきます!

(↓のやつです)

f:id:vba-business999999:20180807200518p:plain

 

まずはプログラムから!

 

こんな感じです!

f:id:vba-business999999:20180807195613p:plain

 

2行!!!

驚きの短さですね。

 

コードの意味を解説しますね!

 

Dim foldanonamae As String

→ VBAさん!foldanonamae は文字だよ!

 

foldanonamae = Application.GetOpenFilename

エクスプローラーを開いて、フルパスを foldanonamae に代入してね!

 

ではでは実行してみましょう!

 

エクスプローラーが開きましたね

f:id:vba-business999999:20180807200544p:plain

 

②好きなファイルを選択!

f:id:vba-business999999:20180807201054p:plain

 

すると~?

 

 

 

 

ちょっと待ってくださいね~!

 

 

 

・・・。

 

 

 

 

・・・・・・・・・・。

 

 

 

・・・・・・・・・・・・・・・。

 

 

 

 

 

 

何も起きず!!!

 

大丈夫です!

ちゃんと何か起こってますよ!!

 

先ほどのプログラムに

Call Msgbox(foldanonamae)

を追加しもう一度実行して好きなファイルを選択してみてください~!

 

f:id:vba-business999999:20180807201509p:plain

 

すると・・・

f:id:vba-business999999:20180807201458p:plain

 

ちゃんとフルパスが表示されました!

 

次回はこのプログラムを進化させて

好きなファイルをエクセルに挿入するプログラムを

作成していきましょう!

 

お楽しみに♪