Improve LAB

ゲーム、ガジェット類、ITスキルなどの記事を書きます。

Improve LAB ~HOME~

このブログについて

管理人のShirron (しろん) です。

このブログでは下記記事を取り扱っています。
興味のあるページをご覧いただけると幸いです。

  • Python プログラミング
  • ゲーム日記

管理人について

関東に住む20代の会社員で1児の父です。

EXCELマクロ・VBAを会社で使っており、ある程度習得できています。

買い物は基本コスパ重視です。安くて高品質なガジェット情報をお届けしながら、
プログラミングやFXなどの活動記録をお届けしていきます。

何かご質問、ご要望があれば、Twitterなどからご連絡ください。
どうぞよろしくお願いいたします。

EXCELからメールを送る(outlook)

outlookでメールを送る

なお、VBE画面で
ツール > 参照設定 >「Microsoft Outlook ??.? Object Library」
を有効にしておく必要があります。

Dim oApp As New Outlook.Application
Dim mail As Outlook.MailItem
Set mail = oApp.CreateItem(olMailItem) 'メールを作成

    mail.To = "sampleTo@mail.co.jp" '宛先
    mail.CC = "sampleCC@mail.co.jp"   'CCを指定
    mail.BCC = "sampleBCC@mail.co.jp"  'BCCを指定
    mail.Subject = "こんにちは" '件名を指定
    mail.HTMLBody = "お元気ですか"  '本文の指定
    mail.attachments.Add "D:\EXCELデータ\book1.xlsx"  'ファイルを添付
    mail.Display '作成したメールを表示
    'mail.Send '作成したメールを送信(コメントアウトしています)

メールを複数送る例

f:id:shirron:20210408011505p:plain
mail

このようなリストを作成したとします。

For文を使い、2行目から、最終行までを、
1行で1通ずつメールを作成し送信していきます。
最終行は、追加登録に対応するため、
Cells(Rows.Count, 1).End(xlUp).Rowで取得しています。

Dim oApp As New Outlook.Application
Dim mail As Outlook.MailItem
Set mail = oApp.CreateItem(olMailItem) 'メールを作成

maxrow = Cells(Rows.Count, 1).End(xlUp).Row

For i = 2 To maxrow

    mail.To = Cells(i, 1).Value '宛先
    mail.CC = Cells(i, 2).Value   'CCを指定
    mail.BCC = Cells(i, 3).Value  'BCCを指定
    mail.Subject = Cells(i, 4).Value '件名を指定
    mail.HTMLBody = "<span style=""font-size:11pt;"" >" & Cells(i, 5).Value & "</span>"  '本文の指定
    mail.attachments.Add Cells(i, 6).Value  'ファイルを添付
    mail.Display '作成したメールを表示
    'mail.Send '作成したメールを送信

Next

本文の中身は、HTML形式なので、入力するセル内に
brやpタグを加えることで改行が可能です。

特定の曜日だけマクロを実行する

処理を「毎週月曜日だけ追加したい」場合のコードを紹介します。
今日の曜日をWeekdayを使って取得して、月曜日の場合に処理1をします。

If Weekday(Now()) = vbMonday Then
 '~処理1~
End if

'~毎日の処理~


A1セルにVBAで曜日を入れてみましょう
※実際は使いません。セルに=text(today(),"aaa")と書けば終了です。

If Weekday(Now()) = vbMonday Then
  Range("A1").Value = "月曜日です"

ElseIf Weekday(Now()) = vbTuesday Then
  Range("A1").Value = "火曜日です"

ElseIf Weekday(Now()) = vbWednesday Then
  Range("A1").Value = "水曜日です"

ElseIf Weekday(Now()) = vbThursday Then
  Range("A1").Value = "木曜日です"

ElseIf Weekday(Now()) = vbFriday Then
  Range("A1").Value = "金曜日です"

ElseIf Weekday(Now()) = vbSaturday Then
  Range("A1").Value = "土曜日です"

ElseIf Weekday(Now()) = vbSunday Then
  Range("A1").Value = "日曜日です"

End If

ワイルドカードで開いたブックを閉じたい

下記のような動作で、日によって名前が変わるファイルを
ワイルドカードを用いて開けます。

Dim path, book 'variant

path = "D:\EXCELデータ\"
book = Dir(path & "book*.xlsx") 

Workbooks.Open (path & book)

今回はこの日によって名前が変わるファイルを開いて処理した後、
閉じたい場合のマクロを紹介します。

パターン1

開いたときにアクティブになることを利用し
開いた後にアクティブブックとして変数にセットしておく

Dim path, book 'variant
Dim wb As Workbook

path = "D:\EXCELデータ\"
book = Dir(path & "book*.xlsx") 

Workbooks.Open (path & book)
set wb = ActiveWorkbook

'~処理~

wb.close savechanges:=True '保存しないで閉じる場合はFalse

パターン2

開いているブックの中から該当するファイルを探して閉じる

Dim path, book 'variant
Dim wb As Workbook
Dim i As Long

path = "D:\EXCELデータ\"
book = Dir(path & "book*.xlsx") 

Workbooks.Open (path & book)
set wb = ActiveWorkbook

'~処理~

For i = 1 To Workbooks.Count
 If Workbooks(i).Name Like "book*.xlsx" Then
  Workbooks(i).Close savechanges:=True
 End If
Next i

別のブックを開く方法

別のブックを開く

Dドライブの「EXCELデータ」というフォルダ内のbook1を開く場合

Workbooks.Open Filename:= "D:\EXCELデータ\book1.xlsx"

 ↓ のコードでも動作します。

Workbooks.Open ("D:\EXCELデータ\book1.xlsx")

変数を使って開く場合

Dim path, book  ' as ~~は書かず省略 = Variant型になる

path = "D:\EXCELデータ\"
book = "book1.xlsx"

Workbooks.Open (path & book)

マクロが記述されたブックに
パスを入力しておきそれを使うこともできます
(A1セルの入力は D:\EXCELデータ\)

path = Thisworkbook.Sheets("sheet1").range("A1").value

ワイルドカードを使って開く場合

開きたいファイルの名前の末尾が変わるなどの場合
都度書き換えるのは面倒です。

ワイルドカード(* または ?)を使用すると、
該当するファイルを開くことができます。
原理は省略しますが、Dirという記述が入ります。
「*」の場合(book1やbook20210408がすべて該当する)

Dim path, book 'variant

path = "D:\EXCELデータ\"
book = Dir(path & "book*.xlsx") 

Workbooks.Open (path & book)

「?」の場合(同じ文字数のものが該当する)

Dim path, book 'variant

path = "D:\EXCELデータ\"
book = Dir(path & "book????????.xlsx")   '?が8つなので8桁のみ

Workbooks.Open (path & book)

開く場合のオプション追加

上記のコードの後ろにカンマを付け、後ろにオプションを記述します。

読み取り専用で開く

Workbooks.Open Filename:= "D:\EXCELデータ\book1.xlsx", ReadOnly:=True

パスワード付きのファイルを開く(パスワード=1234)

Workbooks.Open Filename:= "D:\EXCELデータ\Lockbook1.xlsx", Password="1234"

FX 勉強日記 記事一覧

FXについての記事の一覧です。

FXトレーニン

・準備中

【FX】過去検証・シミュレーション用無料ソフトのご紹介

FXに興味があり、
・練習のために過去検証、シミュレーションのできるツールを探している。
・けれど、利益を得られるか分からないのに有料ソフトを買うのは・・・
という方に向けて、同じ境遇のなか、私が使い始めたツールをご紹介します。
今回紹介するのは4つです。
4つすべて、チャートの早送りができます。

・FX Blue Trading Simulator v3 for MT4(PC)
・Thinktrader(PC)
Androidでインストールできるアプリ2つ

FX Blue Trading Simulator v3 for MT4(一番おすすめです)

f:id:shirron:20210131233417p:plain

いい点
・MT4(メタトレーダー4)上で動作するシミュレーターで、無料で使える
MTF(マルチタイムフレーム分析)ができる(らしいです)
・トレード解析結果をweb上で確認できる。(EXCEL出力も可能で、データが蓄積できる)

下の画面がWeb上の分析画面です。

f:id:shirron:20210201001306p:plain

細かなインストール方法はこちらから→【FX Blue のインストール手順

ThinkTrader(PC)

f:id:shirron:20210201002104p:plain
thinkt

もともとは、Trade Interceptor という名前だったツールです。
Android,iPhoneでもThinkTraderはインストールできますが、
おそらく過去検証はできません・・。

インストールは【ThinkTrader】から

Androidでインストールできるアプリ2つ

私が使っているアプリは、apple storeには無いようでしたので、
IPhoneの方はすみません・・・
以下、2つを紹介します。



f:id:shirron:20210201003123p:plain

↑のアプリは、5つの通貨ペアでそれぞれ目標金額を達成するゲームです。
使用できるのは、下記の3つのみと、とてもシンプルです。
・EMA,SMAのそれぞれ10,20,50,100のうちから2本
・トレンドライン
・1min 10min 1hour

f:id:shirron:20210201003928p:plain

↑のアプリは、プレミアム版は課金要素(1回きり)になりますが、
速度自在の早送り、
テクニカル分析
インジケーターの使用ができます。


スマホアプリは紹介した以外にも、
日本産以外のものがいろいろと出てくると思います。
過去検証、シミュレーションを重ね、
FXで利益を上げられるように、
お互い頑張りましょう。

「FX Blue Trading Simulator v3 for MT4」のインストール方法

・練習のために過去検証のできるツールを探しているのだけれど、
利益を得られるか分からないのに有料ソフトを買うのは・・・
という方に最適なツール「FX Blue Trading Simulator v3 for MT4」
のインストールの流れについての記事です。

MT4のインストール

MT4のインストールには、証券会社でデモ口座を開設する必要があります。

私は、XMtradingでデモ口座を
開設してMT4をインストールしましたが、
TradingViewというツールも使えることを視野に入れると、
OANDAで登録するのがおすすめです。


FX Blue Trading Simulator v3 for MT4のインストール

1.【fxblue.com】でインストールをクリック
2.ユーザー登録をする

3.送られてきたメールに空メール(題名helloで)を返信
4.インストールして解凍した.exeファイルを実行
(どのMT4にインストールするか問われます)

5.インストールで選択したMT4を起動し、
  エキスパートアドバイザの「DLLの使用を許可」に☑
6.ストラテジーテスターを起動( ctrl + R )し、
  エキスパートアドバイザで「FX Blue ~」を選択

7.通貨ペア、期間等設定し、[スタート]をクリック
(初回のみ、ユーザー登録時のアカウントとパスワードを入力します)

上記の手順で、下の画面のように、
左上に注文のウインドウが表示されている画面が出れば完了です。

f:id:shirron:20210131233417p:plain
bluecap

起動しない場合は、ヒストリーセンターで
該当通貨ペアのデータがダウンロード済みか確認してください。

以上でシミュレートが開始できます。
ちなみに、英語版のみですが、説明書のpdfがダウンロードできます。
私は英語より日本語の方が快適に読めるので、
DocTranslatorという文書翻訳ソフトを使って日本語化しました。
こちらはWeb上で翻訳できて、レイアウトも崩れないためおすすめです。