Excel VBAでワークシート名や宛先を入力する機能を作ろう!初心者でもできる簡単マクロ入門

パソコンパソコン・スマホ教室
スポンサーリンク

Excelを使っていると、「新しいシートを追加したい」「特定の宛先にメールを送りたい」といった作業がよくありますよね。そんなとき、VBA(Visual Basic for Applications)を使うと、手作業を自動化できてとっても便利です。

今回は、初心者の方でもわかりやすいように、Excel VBAを使って「ワークシート名を入力して新しいシートを作成する方法」と「宛先を入力してメールを送信する方法」をステップ・バイ・ステップでご紹介します。

スポンサーリンク

目次

Excelのイメージ

Excelのイメージ

ワークシート名を入力して新しいシートを作成する方法

VBAエディタを開こう

まずは、Excelを開いて「Alt」+「F11」を押して、VBAエディタを開きます。ここでマクロを作成していきます。

新しいモジュールを挿入しよう

VBAエディタが開いたら、左側の「VBAProject(あなたのファイル名)」を右クリックして、「挿入」→「モジュール」を選択します。これで新しいモジュールが追加されます。

コードを入力しよう

新しく追加されたモジュールに、以下のコードをコピーして貼り付けてください。

Sub 新しいシートを作成()
Dim シート名 As String
Dim シート存在 As Boolean
Dim i As Integer

' ユーザーにシート名を入力してもらう
シート名 = InputBox("新しいシートの名前を入力してください:")

' 入力が空でないか確認
If シート名 = "" Then
MsgBox "シート名が入力されていません。処理を中止します。"
Exit Sub
End If

' シート名が既に存在するか確認
シート存在 = False
For i = 1 To Worksheets.Count
If Worksheets(i).Name = シート名 Then
シート存在 = True
Exit For
End If
Next i

' シート名が存在する場合、再入力を促す
If シート存在 Then
MsgBox "その名前のシートは既に存在します。別の名前を入力してください。"
Exit Sub
End If

' 新しいシートを作成
Worksheets.Add(After:=Worksheets(Worksheets.Count)).Name = シート名
MsgBox "新しいシート「" & シート名 & "」が作成されました。"
End Sub

マクロを実行しよう

コードを入力したら、VBAエディタを閉じて、Excelに戻ります。「Alt」+「F8」を押して、「新しいシートを作成」を選択し、「実行」をクリックします。すると、シート名を入力するダイアログが表示されるので、名前を入力してみてください。

宛先を入力してメールを送信する方法

Outlookを使えるようにしよう

このマクロでは、Microsoft Outlookを使ってメールを送信します。Outlookがインストールされていない場合や、設定が必要な場合がありますので、事前に確認しておきましょう。

新しいモジュールを挿入しよう

先ほどと同じように、VBAエディタを開いて、新しいモジュールを挿入します。

コードを入力しよう

新しく追加されたモジュールに、以下のコードをコピーして貼り付けてください。

Sub メールを送信()
Dim 宛先 As String
Dim 件名 As String
Dim 本文 As String
Dim OutlookApp As Object
Dim OutlookMail As Object

' ユーザーに宛先、件名、本文を入力してもらう
宛先 = InputBox("宛先のメールアドレスを入力してください:")
If 宛先 = "" Then Exit Sub
件名 = InputBox("件名を入力してください:")
If 件名 = "" Then Exit Sub
本文 = InputBox("本文を入力してください:")
If 本文 = "" Then Exit Sub

' Outlookを起動
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)

' メールの設定
With OutlookMail
.To = 宛先
.Subject = 件名
.Body = 本文
.Send
End With

' メモリ解放
Set OutlookMail = Nothing
Set OutlookApp = Nothing

MsgBox "メールが送信されました。"
End Sub

マクロを実行しよう

コードを入力したら、VBAエディタを閉じて、Excelに戻ります。「Alt」+「F8」を押して、「メールを送信」を選択し、「実行」をクリックします。すると、宛先、件名、本文を入力するダイアログが順に表示されますので、必要な情報を入力してみてください。

よくある質問

Q1: VBAのセキュリティ設定でマクロが実行できません。どうすればいいですか?

Excelの「ファイル」→「オプション」→「セキュリティ センター」→「セキュリティ センターの設定」→「マクロの設定」で、「すべてのマクロを有効にする」を選択してください。ただし、セキュリティ上の理由から、信頼できるソースのマクロのみを有効にするようにしましょう。

Q2: シート名に使用できない文字が含まれている場合、どうすればいいですか?

シート名には、以下の文字を含めることができません。
/ \ ? *
これらの文字が含まれている場合、エラーメッセージを表示して処理を中止するようにコードを修正することをおすすめします。

Q3: メール送信後にOutlookが起動しないようにするにはどうすればいいですか?

Outlookを非表示で起動するには、以下のようにコードを修正します。

Set OutlookApp = CreateObject("Outlook.Application")
OutlookApp.Visible = False ' Outlookを非表示で起動
Set OutlookMail = OutlookApp.CreateItem(0)

これで、Outlookがバックグラウンドで動作し、ユーザーには表示されません。

今すぐ解決したい!どうしたらいい?

LINE公式

いま、あなたを悩ませているITの問題を解決します!
「エラーメッセージ、フリーズ、接続不良…もうイライラしない!」

あなたはこんな経験はありませんか?

✅ ExcelやWordの使い方がわからない💦
✅ 仕事の締め切り直前にパソコンがフリーズ💦
✅ 家族との大切な写真が突然見られなくなった💦
✅ オンライン会議に参加できずに焦った💦
✅ スマホの重くて重要な連絡ができなかった💦

平均的な人は、こうしたパソコンやスマホ関連の問題で年間73時間(約9日分の働く時間!)を無駄にしています。あなたの大切な時間が今この悩んでいる瞬間も失われています。

LINEでメッセージを送れば即時解決!

すでに多くの方が私の公式LINEからお悩みを解決しています。

最新のAIを使った自動応答機能を活用していますので、24時間いつでも即返信いたします。

誰でも無料で使えますので、安心して使えます。

問題は先のばしにするほど深刻化します。

小さなエラーがデータ消失重大なシステム障害につながることも。解決できずに大切な機会を逃すリスクは、あなたが思う以上に高いのです。

あなたが今困っていて、すぐにでも解決したいのであれば下のボタンをクリックして、LINEからあなたのお困りごとを送って下さい。

相談しに行く

ぜひ、あなたの悩みを私に解決させてください。

まとめ

今回は、Excel VBAを使って「ワークシート名を入力して新しいシートを作成する方法」と「宛先を入力してメールを送信する方法」をご紹介しました。VBAを使うことで、日々の作業を効率化し、時間を節約することができます。

もし、これらのマクロを使ってみて、わからないことや困ったことがあれば、お気軽にLINEでお声掛けください。あなたの作業がもっと楽になるよう、サポートいたします!

他にも疑問やお悩み事があればお気軽にLINEからお声掛けください。

コメント

タイトルとURLをコピーしました