Quantcast
Channel: いつも隣にITのお仕事
Viewing all 2105 articles
Browse latest View live

Word VBAで段落先頭の全角スペースを一括でインデントに変更するマクロの作り方

$
0
0
indent

photo credit: theloushe Jan 08 (13) via photopin (license)

みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

Word VBAで段落の冒頭の全角スペースをインデントに一括変更するマクロの作り方をお伝えしています。

前回の記事はコチラです!

Word VBAで検索した結果の段落とその範囲の開始位置を取得する方法
Word VBAで段落の冒頭の全角スペースをインデントに変更するマクロを作っています。今回は検索した全角スペースが含まれる段落を取得する、またその段落範囲の開始位置を取得する方法をお伝えします。

全角スペースを検索して、発見した全角スペースが段落の冒頭にあるかどうかを判定するプロシージャを作りました。

さて、今回はいよいよWord VBAで全角スペースをインデントに変更していく処理を追加したいと思います。

では、行ってみましょう!

前回のおさらい

前回作成した記事はこちらです。

Sub removeSpaces()

With Selection.Find
    .Text = " "
    .Wrap = wdFindContinue
    .MatchByte = True
    Do While .Execute
        If Selection.Start = Selection.Paragraphs.First.Range.Start Then
            Debug.Print "インデントに差し替えます"
        Else
            Debug.Print "何もしません"
        End If
        Stop
    Loop

End With

End Sub

ポイントは8行目ですね。

  • Selection.Start:Executeメソッドの結果発見した全角スペースの開始位置
  • Selection.Paragraphs.First.Range.Start:Executeメソッドの結果発見した全角スペースが含まれる段落範囲の開始位置

この二つが等しければ、Executeメソッドの全角スペースは段落の冒頭にあるということですね。

ですから、今はDebug.Printの処理となっている9行目を

  • Executeメソッドの結果発見した全角スペースを削除する
  • 該当の段落の先頭をインデントする

という処理に差し替えていけばOKですね。

選択範囲のテキストを削除する

では、まずExecuteメソッドの結果発見した全角スペースを削除する処理を考えていきましょう。

Executeメソッドの結果発見した全角スペースは選択されている状態、つまりSelectionオブジェクトですから、SelectionオブジェクトのテキストつまりTextプロパティを操作します。

Selection.Text = 値

今回は、全角スペースつまり選択範囲のテキストすべてを削除してしまいたいので、Textプロパティの値を「空」にすれば良いですね。

Selection.Text = ""

これでOKです。

インデントは段落書式

では続けて、インデントを挿入する方法について解説をしていきます。

以下記事でお伝えしている通り、インデントは「段落書式」なので段落に対して設定をする必要があります。

Word VBAを使うなら知っておくべき「段落」の話とその操作方法
初心者向けのWord VBAのシリーズということで便利な文字を入力するマクロの作り方をお伝えしています。Word VBAで段落を表すParagraphオブジェクトとその操作方法についてお伝えしていきます。

その証拠にWordのリボン「ホーム」を開くと、「インデントを減らす」「インデントを増やす」アイコンは「段落」のコーナーに配置されていますでしょ?

Wordのホームリボンの段落コーナー

ついでに、段落の設定ものぞいてみましょう。小さいですが、右下のアイコンをクリックすると、「段落の設定ウィンドウ」が開きます。

すると「インデントと行間隔」タブの中断あたりに「インデント」関連の設定がありますね。

Wordの段落の設定ウィンドウ

そして「最初の行」という箇所がありますね。VBAを用いてこの「最初の行」を「字下げ」に、その幅を「1字」にできればよさそうです。

段落のインデントを設定する方法

ポイント単位でインデントの設定するFirstLineIndentプロパティ

VBEで F2 キーを押してオブジェクトブラウザーを開き、「indent」と入力してみると、以下のように Paragraphオブジェクトのメンバーとして「FirstLineIndent」といういかにもな名前のプロパティを発見します。

VBEのオブジェクトブラウザーでindentを検索

これだ!

ということで、例えば以下のようにWord文書で選択している状態で

Word文書で段落を選択

イミディエイトウィンドウに以下入力して Enter をしてみましょう。

Selection.Paragraphs.First.FirstLineIndent = 1

インデントがどうなっているかというと…

Word VBAで段落の最初の行が1ポイント字下げ

変わってないやんけー

と思いきや、よーくよーく見ると…少しだけ、ほんの少しだけインデント入っているのわかりますか?

聡明な読者の皆さんは、もうおわかりだと思うのですが、FirstLineIndentプロパティの設定単位はポイント単位なのです。

Paragraphオブジェクト.FirstLineIndent = 幅(ポイント単位)

同様に、左インデントと右インデントをそれぞれポイント単位で設定するLeftIndentプロパティ、RightIndentプロパティもありますので、合わせて紹介しておきますね。

Paragraphオブジェクト.LeftIndent = 幅(ポイント単位)
Paragraphオブジェクト.RightIndent = 幅(ポイント単位)

文字単位でインデントを設定するCharacterUnitFirstLineIndentプロパティ

じゃあ、文字単位にしたい場合はどうしたらよいでしょう。

1文字あたりのポイント数はフォントサイズに依存しているから、フォントのポイント数を調べる?でもフォント種類や文字によって違うようなどうだっけ…

はい、そんなことは気にしなくてOKです。実は文字単位でインデントをする別のプロパティがあります。

最初の行のインデントを文字単位で設定するCharacterUnitFirstLineIndentプロパティです。

Paragraphオブジェクト.CharacterUnitFirstLineIndent = 幅(文字数)

先ほどのWord文書に対して、以下ステートメントをイミディエイトウィンドウで実行してみましょう。

Selection.Paragraphs.First.CharacterUnitFirstLineIndent = 1

すると、無事に1文字分のインデントが挿入されましたね。

Word VBAで段落の最初の行を1文字分字下げ

同様に、左インデント、右インデントをそれぞれ文字単位で設定するプロパティも紹介しておきますね。

Paragraphオブジェクト.CharacterUnitLeftIndent = 幅(文字数)
Paragraphオブジェクト.CharacterUnitRightIndent = 幅(文字数)

しかし、プロパティ名が長い…

段落冒頭の全角スペースをインデントに変更するプロシージャ

以上を踏まえて、全角スペースを検索してそれが段落の先頭であれば削除をしてインデント1文字分に差し替えるプロシージャを作りました。

Sub removeSpaces()

Dim par As Paragraph

With Selection.Find
    .Text = " "
    .Wrap = wdFindContinue
    .MatchByte = True
    Do While .Execute
        Set par = Selection.Paragraphs.First
        If Selection.Start = par.Range.Start Then
            Selection.Text = ""
            par.CharacterUnitFirstLineIndent = 1
        End If
        Stop
    Loop

End With

End Sub

12行目で全角スペースを消す、13行目で段落の最初の行にインデントを1文字追加します。

これを実行すると、以下のようにじゃんじゃん全角スペースをインデントに変更をしていきますよ。

Word VBAで段落先頭の全角スペースをインデントに変更

もちろん、Stopステートメントを削除すれば有無も言わさず一気に処理ができます。

まとめ

Word VBAで段落先頭の全角スペースをインデントに一括変更するマクロの作り方をお伝えしました。

以下2点が今回のポイントです。

  • インデントの設定は段落に対して行う
  • インデントの設定をするプロパティはポイント単位で設定するものと文字単位で設定するものがある

知っておいて損はないですね。

以上でシリーズの目的は達成しましたが、また便利なマクロがありましたら紹介しますね。

どうぞお楽しみに!

連載目次:Word VBAで全角スペースをインデントに一括変更する

Wordで文書を作成するときに、段落の冒頭をうっかり全角スペースにしてしまったりすることありますよね。全部インデントに統一しておきたい、そんなときに使える一括変更マクロを作っていきます。
  1. Word VBAで文書全体で全角スペースのみを検索する方法
  2. Word VBAで検索した結果の段落とその範囲の開始位置を取得する方法

VBScriptでWEBスクレイピング!ブラウザの読み込み待ちをしてエラーを回避する

$
0
0

こんにちは!あつもり(@atumori17)です。

VBScriptでIEを操作してWEBスクレイピング!の第4回目で~す。
前回はHTMLドキュメントとタイトルを取得する方法を紹介しました。

VBScriptでWEBスクレイピング!HTMLドキュメントとタイトルを取得する方法
IEを操作してHTMLドキュメントからWEBサイトのタイトル名を取得するテクニックを紹介します。IEでページ全体を読み込みんでからtitleタグをキーにしてタイトル名を取得します。HTMLの知識がちょっとだけ必要になってきますので合わせて解説していきます。

しかし、最後の最後でアプリケーションを実行したところ、エラーが表示されてしまいましたよね。その理由がブラウザの読み込み待ち処理をしていないから、というところまで説明しました。

今回はブラウザの読み込み待ちをしてエラーを回避する方法を紹介します。面倒なようですがWEBスクレイピングはIEがページ全体を読み込むまで待ってあげてから、データを取得するという手順を踏まなければならないんですね~。

ブラウザの読み込み待ちをするスクリプト

テキストエディタ開き下記のコードを入力します。全て入力し終わったら「titleタグ取得.vbs」のファイル名でデスクトップに保存します。前回作成したファイルに上書き保存してかまいません。

Option Explicit

    Dim objIE
    Dim objLink

    Set objIE = CreateObject("InternetExplorer.Application")
    objIE.Visible = True

    'IEを開く
    objIE.navigate "http://google.co.jp/"

    'ページが読み込まれるまで待つ
    Do While objIE.Busy = True Or objIE.readyState <> 4
        WScript.Sleep 100
    Loop

    'タイトルをテキストファイルに書き出す
    OutputText objIE.document.Title

'テキストファイルへ出力
Function OutputText(ByVal strMsg)

    Dim objFSO
    Dim objText

    'ファイルシステムオブジェクト
    Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
    ’テキストファイルを開く
    Set objText = objFSO.OpenTextFile("C:\work\title.txt", ForAppending, True)

    objText.write strMsg
    objText.write vbCrLf

    objText.close

    'オブジェクト変数をクリア
    Set objFSO = Nothing
    Set objText = Nothing

End Function

プログラムコードの解説

全体の流れは以下のようになります。

  1. IEでページを開く
  2. IEの読み込み待ちをする
  3. テキストファイルにWEBサイトのタイトル名を書き出す

今回はIEでページを開いたあとの読み込み待ちの処理について説明していきます。

IEの読み込み待ちの処理

冒頭でもご説明した通りIEがページ全体を読み込み終わったあとでないと、タイトル名を抜き出すことはできません。そのためIEがページ全体を読み込むまで待ってあげる必要があります。

下記のようにコードを書くことで、IEがページ全体を読み終えるまで処理を待機させることができます。上のコードの13~16行目にあたります。

Do While objIE.Busy = True Or objIE.readyState <> 4
        WScript.Sleep 100
    Loop

BusyプロパティとreadyStateプロパティから読み込み状態を調べる

次の2つの条件のどちらかが満たされるまでループし、ループしている間はsleep関数を実行します。

InternetExplorerオブジェクト.Busy = True

BusyプロパティはIEがビジー状態かを示します。ビジーならTrueを返し、ループ処理を続けます。

InternetExplorerオブジェクト.readyState <> 4

readyStateプロパティはドキュメントの読み込み状態を示します。4の場合に読み込みが完了したということですので、4以外の場合はループ処理を続けます。

Sleep関数でウエイトさせる

WScriptオブジェクト.Sleep 時間

ループ中は画面が固まらないようにSleep関数を実行します。時間はミリ秒で指定します。1000と指定した場合、VBScriptの処理を1秒間中断します。

エクセルVBAですとSleep関数は使わずDoEvents関数を使い、Do Whileでループしている間に画面が固まらないようにOSに処理を渡すということをします。しかしVBScriptはDoEvents関数がないため代わりにSleep関数を使うというわけです。

エクセルVBAでの読み込み待ち処理を過去の記事で紹介していますので参考にしてみてください。

【エクセルVBAでIE操作】ブラウザの読み込み待ちをしないとダメなのです
エクセルVBAでIEを操作するシリーズの第3回、今回はIEの読み込み待ちの処理を入れていきます。この処理はVBAでIEを扱う限りはほとんどの場合で必要となる処理ですので、ぜひ覚えて頂ければと思います。

読み込み待ちの処理が終わったら、取得したタイトル名をテキストファイルに書き出します。テキストファイルの書き出しについては前回の記事を参考にしてみてください。

VBScriptでWEBスクレイピング!ファイルシステムオブジェクトでテキストに書き出す
VBScriptでファイルシステムオブジェクトを使ってシンプルにテキストファイルに保存するテクニックの紹介です。せっかくWEBスクレイピングでWEBサイトから必要な情報を取得しても、保存する場所がなければ取得したデータを使うことはできないからです。

アプリケーションを実行してみる

では実際に起動してみます。デスクトップにある「titleタグ取得.vbs」をダブルクリックして起動します。エラーメッセージが表示されずに起動するでしょうか?ドキドキですね~。

OpenTextFileメソッドで指定したパスに「title.txt」ができました。

「title.txt」を開くとWEBページのtitileが書かれています。エラーメッセージが表示されることなく無事タイトル名を取得できましたねっ!

まとめ

いかかでしたか?今回の内容をまとめると以下のようになります。

  • WEBページから情報を取得するときはIEのページ読み込み待ち処理を入れる
  • ページの読み込み状態はBusyプロパティとreadyStateプロパティからを調べる
  • ページの読み込み中に画面が固まらないようにSleep関数を使う

今回は以上です。それではお疲れさまでした~。

連載目次:VBScriptでお手軽WEBスクレイピング

Windowsを操作できるプログラミング言語「VBScript」を使えば、InternetExplorerを操作してWEBスクレイピングが可能です。 これで日々の情報収集はダブルクリック一発で完了させましょう!
  1. VBScriptでInternet Explorerを使って複数WEBサイトをダブルクリック一発で開く方法
  2. VBScriptでWEBスクレイピング!ファイルシステムオブジェクトでテキストに書き出す
  3. VBScriptでWEBスクレイピング!HTMLドキュメントとタイトルを取得する方法
  4. VBScriptでWEBスクレイピング!ブラウザの読み込み待ちをしてエラーを回避する

独立起業して2年経つとこういう感じになるよという話とそのポイント振り返り

$
0
0

みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

独立をしてから2年が経ちました。

39歳、サラリーマンに安定の道無し(私の場合)と一念発起し独立しましたが、今はもう齢41歳になりました。

弊社は5月が決算ですので、6月から3期目がスタートしているのですが、先日ようやく決算が終わりまして、2期目を乗り切ったんだな~という気分に浸っています。

今回はこの2年について振り返りつつ、これから起業をされる方、起業を検討される方に「独立起業して2年経つとこういう感じなんだよ」という一つの形をお伝えできればと思います。

独立してからこれまでの振り返り

1期目はなかなかの赤字で終了、ただ危機感はない

まず、1期目2015年6月~2016年5月までについて簡単にお伝えしておきますと、なかなかの赤字でした。

ただ、金融公庫からの融資もありましたので、それを切り崩してなんとか生き延びたというのが適切な表現となります。

弊社でいうと、固定費は私の人件費くらい。ですが、新たな収益を作るのがどんなに大変なことか、それを大いに痛感しました(今でも痛感してますが)。

まだ危機感はそこまでありませんでした。なぜならまだキャッシュが残っていたからです。

2期目の前半はキャッシュが尽きそうだった

2期目に入った当初は状況はそんなに変わらず、赤字の月が多く、むしろ金融公庫からの融資が徐々に底を尽きそうになってきているものですから、1期目よりも焦りがありました。

この時期、キャッシュフローも10万を切ったタイミングが何度かあって、役員報酬の振込を遅らせたり、けっこうあれこれ工夫をしました。

そのあたりの焦った感じが以下記事にまとまっていますね。

ブログのアクセス数は増えているのに仕事依頼の問い合わせが激減している件を調査
ここ最近ですがブログのPVは順調に伸びているのですが、本来の目標である「仕事の依頼」がめっきり来なくなってしまっているようです。Googleアナリティクスなどを活用して現状を確認と分析をしてみます。

独立するときの資金は半年生活できる分は用意しておくようになどと言われますが、正直いうと私は2ヶ月分しか準備していませんでした。それくらいの備えだと危険ということですね。

出版オファーという名の転機

ただ、あれこれもがいているこの時期に、出版のオファーがありました。2016年9月のことです。

あまりに嬉しすぎて酔っぱらって転んでけがをして。そして、慣れない執筆活動と忙しさ(なんで儲かってないのに忙しかったのかわかりませんが…)に、体調を崩しました。

アラフォーは無理が効かないのです。

体が資本!肋軟骨ひびと帯状疱疹から得たアラフォーフリーランスとしての3つの教訓
肋軟骨にひびが入ったり、帯状疱疹ができたりして、本調子ではない状態が1カ月ほど続いておりました。アラフォーのフリーランスの方と未来の自分自身が同じような目にあったとき役立つと信じ、記録を残しておきます。

というか、飲み過ぎが良くないか。

さて、一生懸命執筆に向かっている間に、少しずつ潮目が変わってきました。

実際、気が付くと2016年12月から気が付くと黒字ベースになっていたのです。

この時期はきっとつらかったんだと思うのですが、今思うと素敵な思い出です。

そして書籍出版

そしてようやく書籍「Excel VBAを実務で使い倒す技術」を出版することができました。2017/4/20のことです。

書籍「ExcelVBAを実務で使い倒す技術」発売についてのお知らせ
「ExcelVBAを実務で使い倒す技術」という本を書きました!本ページは書籍「ExcelVBAを実務で使い倒す技術」の情報を発信していく特集ページ。お知らせ、関連記事、書評のご紹介などを随時更新していきます。

これが契機になったのか、どうなのかわかりませんが、収益がスコンと上がりました。

本を書いた実績を手に入れたということで、大きめの会社でも稟議が通りやすくなったというのはあるかも知れません。

2期目の前半は瀕死だったのですが、後半に一気に巻き返した感じ…キャッシュフローのやりくりを考えなくていいのは、精神衛生上Goodです。

結果、2期目は見事黒字決算、サラリーマンで一番もらっていたときより稼ぐことができました。そして出版もするという…できすぎです。

ブログのPVと問い合わせ件数の関係

仕事のご依頼はブログまたはホームページからの問い合わせからのご依頼がほとんどです。

この2年間のブログのPVと問い合わせ件数をさらしてみましょう。

いつも隣にITのお仕事PVと問い合わせ件数

PVは多少の凸凹はありますが、ありがたいことに順調に伸びています。直近では月間40万~45万PVくらいです。

それに対して、棒グラフが問い合わせの件数ですが、青がお仕事の依頼についてです。

わかっていただけたかと思うのですが、PVとあんまり比例していないんですよね。月をならすと若干増えてはいるのですが、最近でも依頼0の月もあったりして…。

面白いでしょ?

PV増やしゃいいってもんでもないみたいです。

また、問い合わせ件数と収益は直結していないです。からくりとしては、最近はある程度継続するお仕事が増えている(増やしている?)のと、リピートもあ流ということで、少しずつ積み重なる感じになっているんですね。

このまま問い合わせ件数が維持くらいであれば、一人生きて行くぶんには何とかなるかなと期待していますが、数ヶ月先はどうなるかわかりませんからね…

気を抜かずに頑張ります。

独立して2年間生き延びれた理由

さて、こうしてなんとか立っていられているわけですが、それにいくつかのポイントがあったのではないかと思います。

固定費を増やさない

まず、固定費を増やさなかったことです。

こちらの記事、ものすごい共感します。

ショッキングなタイトルの記事だな―、と思いながら、記事を眺めていました。 飲食店経営に手を出したら、その先には「地獄」が待っている 筆者は、ベンチャーキャピタリストとして1000以上のビジネスモデルを見てきたと同時に、自…

町の中華屋さんがしぶとく生き延びる理由として、以下のように解説しています。

一番大きいのは、人件費がほとんど掛からないことだ。町中華には、夫婦で切り盛りし、忙しい時間帯には子供も手伝うようなお店が多い。
また、自分の店で食事をとれば食費も浮くので、生活にかかる経費を大きく落とすことができる。さらには、店と自宅が共用であれば、家賃負担も大きくならない。

弊社でいうと、オフィスを持たなかったこと、人を雇わなかったことです。

オフィスは、わりと迷っていたのですが、本当に借りなくてよかったです。借りてたら死んでました。

今、かかっている固定費は自分の人件費と通信費くらい。

できれば事業をスケールしたいのは山々ですが、そこは現実をネガティブ目に見て慎重に進めないとですね。

ブログを書き続ける

これです。2期目を乗り切ったポイントは間違いなく出版のオファーをいただけたことです。それがなかったら…怖すぎる。

収益は出版してから印税という形になりますが、それよりは、書籍を書いたことで、説得力と自信を手に入れたという点は大きいです。

で、それを引き寄せたのは何か、それは想いをもって発信をし続けたこと、そして書く力を磨き続けたこと、つまりブログの力です。

ブログ開設からたった2年で私が出版のチャンスを得た理由
この度「ExcelVBAを実務で使い倒す技術」という本を書きました。オファーを頂けたのは、ブログのおかげ…開始から2年という短さでチャンスを得られたのには、いくつかのポイントがあったと思います。

多くのビジネスマンは「書く力」を軽視していますが、文章で表現できる、そしてそれを続けられるのはものすごく価値があります。

自分が働いていない時間も、その「文字たち」がネット上や書籍上で自分の分身として働いてくれるのですもん。

書き続ける力、重要です。

スキルを磨き続ける

もう一つポイントを挙げるとしたら、スキルを磨き続けるということです。

独立した当初は、ITのスキルはExcel・VBAしかありませんでした。独立した後に、WordPressやGASの勉強をして、新たに身につけたのです。

できることが増えれば、顧客のターゲットの範囲と提案の幅が広がります。

ピーター・ドラッカーさんも言ってます。

21世紀に重要視されるスキル唯一のスキルは、新しいものを学ぶスキルである。それ以外はすべて時間と共にすたれてゆく。

また、それぞれについて「作るスキル」だけでなく「書くスキル」「話すスキル」も磨くと、掛け算で提供できるサービスが増えていきます。

  • ExcelVBAで話す仕事
  • GASで書く仕事
  • WordPressで…

といったように掛け算できる仕事が増えます。

書くスキルはブログを書き続けることで、一定まではかなり上げることができます。

「スキルがないから独立できない」人が身に着けるべきたった一つのスキル
独立するのに必要なスキルって何でしょうか?たくさんのスキルはあるに越したことはないのですが、独立するのであればただ1つ「絶対に身に着けておくべきスキル」がありますので今回お伝えできればと思います。

3期目で目指したいこと

未だに数カ月先はどうなるかわからない状況には変わりませんが、それは横においておいて、今期成し遂げたいことを考えています。

そこで、ポイントになるな、と今思ったことは、実は以下記事に全部書いてました…びっくりした。

「働く」ということについて2年間考え続けてわかったこと
独立・起業をしてから丸2年経ちまして、株式会社プランノーツも今月から3期目に入りました。その間「働く」をテーマにお仕事をさせて頂いておりますが、「働く」ということは「人を動かす」ということだと気づきました。

つまり

「人」を「動かす」

ということです。

もう少しかみ砕くと、「ITで働くの価値を上げる」「ITの民主化」といったことですが、ひとり社長の身分で、どのように活動量を増やしていけるのか、というのが目下の課題です。

パートナーさんにもお手伝い頂いているのですが、私のディレクションがボトルネックになってしまっていることが多いので…。

その点、解決すべくあれこれ考えていきます。

また、来年このような振り返り記事がアップできるように精進していきます。

Gmailで返信定型文の機能を活用して瞬時にいつものメールの作成をする方法

$
0
0

みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

いつも同じ内容のメールを作成しなければならないときってありますよね。

例えばこんなシチュエーションがあります。

  • ルーチンで行っている作業の報告メール
  • お問い合わせに対する返信メール
  • 営業メールに対して返信するお断りメール

いずれも書くのに数分くらいかかっちゃいますかね。一回こっきりならいいですが、頻繁に発生するのであれば、できる限りその時間を減らしたいものです。

そこで、Gmailを使っているのであれば、Gmail Labsの返信定型文という機能を使うという手があります。

これを使えば、件名や本文などについて定型文を一発で呼び出せるようになるという優れもの。

ということで、今回はGmailで返信定型文を有効にする方法と、その作成方法についてお伝えします。

では、いってみましょう!

Gmail Labsの返信定型文を有効にする

まず、Gmail Labsの返信定型文を有効にしていきましょう。

Gmailの画面右上の「設定」アイコンをクリックしてプルダウンメニューを開き、「設定」を選択します。

Gmailの設定アイコンの設定

ズラリと並んだ中から「Labs」をクリックします。ちなみに、Gmail LabsはGmailの正式機能ではないけど実験的に提供している機能のことです。

それで、そのLabsの中から「返信定型文」を探し当てたら、ラジオボタンを「有効にする」にチェックして、「変更を保存」です。

Gmail Labsで返信定型文を有効にする

これで「返信定型文」の機能がオンになりました。

返信定型文を作成する

続きまして、実際に返信定型文を作成していきましょう。つまり、テンプレートを作るわけですね。

まず、新規のメールを作成するのと同じ手順で「作成」をクリックして、新規メッセージを作成するウィンドウを開きます。

その件名と本文に、返信定型文にしたい内容を入力していってください。

ちなみに、署名は実際の返信定型文作成時に自動挿入されますので、この段階では入れないようにしておいて下さいね。

Gmailで返信定型文を作成する

返信定型文が完成したら、ツールバーの一番右側にある「▼」アイコンをクリックしてメニューを開きます。

Labsで返信定型文を追加をすると、ここに「返信定型文」というメニューが登場しています。それを選択して、さらに「返信定型文を作成」をクリック。

Gmailで返信定型文を作成する

すると「返信定型文に名前を付けてください」というダイアログがポップアップ表示されますので、名前を入力して「OK」です。ちなみに、件名を入れておくと、それがそのまま初期値として入力されています。

Gmailで返信定型文の名前を入力

これで返信定型文の作成が完了です。

返信定型文を使ってメールを作成する

では、実際に作成した返信定型文でメールを作成してみましょう。

「作成」から新規メッセージ作成画面を開いて、定型文作成のときと同様に「▼」ボタン→「返信定型文」とたどります。

するとメニュー内に「挿入」「保存」「削除」とありまして、それぞれに先ほど作成した定型文が登場しているはずです。

今回は「挿入」の下にある返信定型文を選択します。

Gmailで返信定型文を使って新規メールを作成

これで、メールの件名と本文に、返信定型文のものが挿入されます。簡単でしょ?

Gmailで返信定型文を使って新規メールを作成

あとは、メールアドレスと本文内の「●●様」などの部分を修正して送信すればOKですね。

これで次回から素早く返信が可能となります。

ちなみに、他のメニューについては

  • 保存:現在のメールの内容で選択した返信定型文を上書きする
  • 削除:選択した返信定型文を削除する

という操作になります。もちろん「返信定型文を作成」から別の定型文を作成することも可能ですよ。

まとめ

以上、Gmailで返信定型文の機能を有効にする、またそれを使って返信定型文を作成する方法についてお伝えしました。

これで、いつものメールも瞬時に作成して送信できますね。

ただ、メールアドレスや本文中の宛先などの表記はくれぐれもお間違えのないように…

ということで、Gmail Labsの返信定型文の機能、ぜひご活用ください!

エクセルVBAで画像やオートシェイプなどを操作するShapeオブジェクトのはじめの一歩

$
0
0

vba,excel,shape,object,eyecatch

皆様こんにちは、ノグチです。

エクセルVBAで請求書や発注書などを作っているとき、会社のロゴや印章を表示させたいな…なんてことありますよね。

ボタンやオートシェイプをVBAで表示/非表示にしたり、表示する場所を指定できたら…ということもありますよね。

または、図形をシートに沢山、上下の位置もそろえて表示したい…でも手で一つ一つの図形の位置を調整するのも大変…なんてこともあるかもしれません。

今回は、そんなエクセルの画像をVBAで操作するための第一歩として、Shapeオブジェクトととは何か?また、Shapeオブジェクトとして操作できるモノの種類を調べた結果をご紹介します!

Shapeオブジェクトとは?

エクセルVBAでシート上の図形を操作する時に使用するのが、Shapeオブジェクトです。

Shapeオブジェクトで図形などの操作や情報の取得をするには、このように記述します。

Shapeオブジェクト.メソッドまたはプロパティ

しかし、一言で図形と言っても、具体的にどんなモノを指すのでしょうか。

論より証拠ということで、調べてみました。

Shapeオブジェクトで操作できる図形の種類を調べてみる

Shapeオブジェクトで操作できる図形その他を調べるために、エクセルのシートにオートシェイプやアイコン、蛍光ペンで描画したものや画像、グラフなどを張り付けたものを用意しました。

vba,excel,shape,object,画像の種類

Shapeオブジェクトで図形の情報が取得できる=Shapeオブジェクトで操作できるモノ、ということで、この色々な図形などの情報を、Shapeオブジェクトを使って取得してみましょう。

Shapeオブジェクトの情報を取得するプロパティ

さて、画像や図形の情報を、Debug.printを使ってイミディエイトウインドウに表示してみましょう。

Debug.printについてはこちらの記事で説明されていますので、併せてご覧ください。

【エクセルVBA】初心者のうちから知っておくべきDebug.Printの使い方
今回はエクセルVBAでイミディエイトウィンドウを使う方法の超基本として、初心者のうちからぜひとも知っておいて欲しいDebug.Printの使い方です。一行に複数の出力をする方法も解説していますよ。

先にお見せした図形や画像の説明には、種類(オートシェイプやグラフなど)を記入してあります。
vba,excel,shape,object,代替テキスト,説明

今回は、Shapeオブジェクトのプロパティを使って、この説明に記入してあるテキストを取得してみようというわけです。

取得できれば、その画像や図形はShapeオブジェクトで操作できるということですね。

今回使用するプロパティはこちらの2つです。

まずはNameプロパティ。

Shapeオブジェクト.Name

このプロパティは、Shapeオブジェクトの名前を取得するプロパティです。

この名前というのは、人間がつけたものではなく、エクセルが内部で自動的につけてくれる名前を指します。

お次はAlternativeTextプロパティ。
Shapeオブジェクト.AlternstiveText

こちらは、Shapeオブジェクトの説明文を取得するプロパティです。

では、これらのプロパティでShapeオブジェクトの説明を取得して、イミディエイトウインドウに表示してみましょう。

シート上のすべてのShapeオブジェクトの情報を取得する

さて、シートに張り付けた図形などのうち、Shapeオブジェクトで操作できるものの情報を取得するために、下記コードを用意してみました。
Sub シェイプ情報取得()
Dim spShape As Shape

For Each spShape In ActiveSheet.Shapes
    Debug.Print spShape.Name, spShape.AlternativeText
Next spShape

End Sub

「シートにある図形などのうち、Shapeオブジェクトの情報をイミディエイトウインドウに表示する」というコードです。

このコードを実行すると、イミディエイトウインドウはこうなります。

vba,excel,shape,object,イミディエイトウインドウ
  • Ink 18    蛍光ペンで描画した図形
  • Graphic 22   猫
  • Picture 24   「氷で冷えたトマト氷で冷えたトマト」のフリー写真素材を拡大
  • Chart 25      エクセルのグラフツールで作成したグラフ
  • TextBox 26   テキストボックスで描画したテキスト
  • Diagram 8    SmartArtで描画した図形
  • Rectangle 9  ワードアートで描画したテキスト
  • Pentagon 10 オートシェイプで描画した図形
  • Button 2      ボタン

イミディエイトウインドウにシート上にある全ての図形などの「名前」と「説明」が表示されていますね。

つまり、先にお見せしたシートに張り付けた図形その他は全てShapeオブジェクトで操作ができる、ということになります。

なんだか面白味のない結果になってしまいましたが、グラフや蛍光ペンで描画したものもShapeオブジェクトで操作できるのは私にとっても発見でした。

まとめ

今回は、エクセルVBAで図形などを操作するための第一歩として、ShapeオブジェクトとShapeオブジェクトで操作ができるモノの一例をお見せしました。

大体の帳票やエクセルツールで使うような図形やグラフなら、このShapeオブジェクトで操作ができそうですね。

また、「これってShapeオブジェクトで操作できるものなのかな?」というものがあれば、今回ご紹介したコードを実行してみると、Shapeオブジェクトなのかどうなのかを確認することができますよ

次回は同じくこのShapeオブジェクトを使って、フォルダに格納している画像ファイルをシートに追加する方法をご紹介していきます。

それでは、最後までお読みいただきありがとうございました!

非エンジニアのWindows派がPythonを始めるメリットをこれでもかと説明します

$
0
0

python

みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

ついにPythonに手を出してしまいました。

VBAやGASがあるのに、なぜわざわざPythonというプログラミング言語に手を出すのか、そしてそれをオススメするのか…不思議ですよね?

ですが、Pythonを知れば知るほど

  • 非エンジニアのプログラミング初心者
  • 一般のビジネスマン
  • Windowsユーザー

といった人たちに有益なものであるという確信が得られてきました。

ということで、本ブログでは一般のビジネスマン向けにPythonを超初心者からステップアップしながらお仕事に活用していくための方法を紹介していきたいと思います。

初回の今回は、Pythonとは何か?そしてそれを学ぶメリットについてお伝えしていきます。

では、いってみましょう!

別のプログラミング言語はもういらないでしょ?

ビジネスマンのお仕事の効率化でいうと、本ブログでもお伝えしている通り、VBAやGoogle Apps Scriptを使うことで、それはもう相当な効果を期待することができます。

VBAができてしまえば、ビジネスマンの圧倒的多数が使用しているOffice製品とそのファイルも操作できます。

GASができてしまえば、スプレッドシートやGmail、Googleカレンダーをはじめとした完全クラウド志向のGoogle製品はもちろん、API経由で様々な外部アプリケーションも操作できるようになります。

それに加えて、何を操作するというのか?別のプログラミングなんか必要ないでしょ?

と思いますでしょ。

それに、Pythonというと、機械学習やデータ解析とか、研究開発とか、GoogleやDropboxなどの大企業で使われているとか、どうせLinuxかMacでしかまともに動かないでしょとか、すごくハードルが高い印象を持っちゃったりしていませんか?

そうでしょそうでしょ。私もそうでしたから。

でも、違うんです。今、非エンジニアのWindowsを使っているビジネスマンにとって、Pythonはとっても身近で、かつ即戦力として役立ち、そして将来の可能性を一気に広げてくれる、そんな存在になりつつあります。

Pythonとは何か

公式サイトを訪れるとそのトップページにPythonとは何かが書いてあります。Google翻訳をに助けてもらって直訳的にすると

Pythonはすぐに作業できて、より効果的にシステムを統合できるプログラミング言語です。

という感じでしょうか。

The official home of the Python Programming Language

非エンジニアの一般ビジネスマンの視点で一言でまとめると「学びやすくて、できることが多いプログラミング言語」と言えるでしょう。

以下、具体的にPythonの特徴を紹介していきます。

文法がシンプル

とにかく、文法がシンプルで書きやすく、読みやすいというのが大きな特徴です。

「for」とか「if」など、プログラムの中で使うためにあらかじめ決められたキーワードを「予約語」と言いますが、Pythonでは予約語の数は33ワードだけだそうです。たった33…ちなみに、JavaScriptでは61、C++は63、Rubyは40だそうです。

それ以上に重要な点として、Pythonは誰が書いても同じような書き方になるように作られています。

ブロック構造がその最たる例なのですが、javaScriptやでは{}とか、VBAではIf~Then~End Ifなどと書くところを、インデントだけでブロックを表現します。

Pythonでは、インデントをしないとブロックとして認められないわけですから、みんなちゃんとインデントするわけです。

VBAでどれだけ「ちゃんとインデントして…!」と口を酸っぱくして言ってきたことか…Excel VBAの拙著でも伝えていますが、可読性の高さは開発や運用の効率や、習得の速さでいうと非常に重要なのです。

Pythonであれば、それは必然的に身につくというか、守らざるを得ないということになります。

豊富なライブラリ

文法がシンプルなのに、どうして「できることが多い」のか、というとライブラリが豊富にあるという点があります。

そもそも、標準で同梱されているライブラリの中にも

  • OSとのインターフェース
  • csv
  • json
  • HTML
  • ファイルやディレクトリ
  • 正規表現
  • 数学
  • 乱数
  • インターネットアクセス
  • データ圧縮
  • パフォーマンス計測

…など、それはもう豊富なラインナップが含まれています。(ちなみに、その標準ライブラリは全てちゃんと日本語化されています。)

それに加えて、サードパーティからもExcel、Word、PDF、Webアプリケーション、GUI、数値解析、スクレイピング、そして機械学習などなど、ありとあらゆるものを操作するためのライブラリが大量に提供されています。Googleドライブってやつもありました。

そして、2017年8月執筆時点では、なんと提供されている数は

There are currently 114100 packages here.

11万を超えています…!

正直、そんなにライブラリなくても大丈夫な感じですが、これらのライブラリの中から必要なものをインポートして使っていけばよいですし、それだけ「できること」の可能性が広がっているといえますよね。

バッテリー同梱(batteries included)

Pythonには「電池が付属しています(”Battery Included”)」という思想があります。

前述の豊富な標準ライブラリが示すように、プログラマがすぐにPythonを活用できるように、必要なライブラリや統合環境をあらかじめ配布物(ディストリビューションといいます)に含めるようにしているのです。

ひと昔前までは、WindowsよりもLinuxやMacのほうが環境として充実していたり、パッケージ管理ツールが別だったりしていたそうですが、最近のバージョンアップで次々に「電池が付属」するようになってきています。

ですから、現在ではWindows版でもPythonをインストールしたら、すぐに開発が開始できるようになっているのです。

そして無料

それらのディストリビューションは全て公式サイトから無料でダウンロードできます。

The official home of the Python Programming Language

無論、公式のディストリビューションだけでなく、大量のサードパーティ製のライブラリも無料で提供されています。

Pythonを学ぶメリット

非エンジニアのWindowsを使っている一般のビジネスマンにとって、Pythonを学ぶメリットはどこにあるのでしょうか?

以下、お伝えしていきます。

職場で活用ができる

VBAはOfficeが必要ですし(たいがいのビジネスマンのPCには入っていますが)、GASでいうと悲しいかなGoogle Appsの使用を禁止している会社もあります。

ですが、Pythonはその実行に必要な全てがディストリビューションに含まれているので、公式サイトからダウンロードしてインストールさえすれば、すぐに活用できます。

もちろん、Windows版があります。無料ですから社内申請も不要な場合がほとんどでしょう。

そして、Pythonはファイルやフォルダの操作、csvなどのテキストファイルやpdfファイルの操作、ブラウザの操作やスクレイピングなどができますから、実務に直結したツールの開発ができます。

ですから、Pythonで業務効率化→さらにPythonを学ぶ時間の創出→別の業務をPythonで効率化→…といったスパイラルに入ることができます。

実務に直結しないと、帰宅後や土日に集中して学習をしなくてはいけないのですが、それで習慣化するのはかなり難しくなります。

実務に直結するのは、忙しいビジネスマンにとって大きなポイントとなります。

効率的にプログラミングスキルを上げる

他のプログラミング言語を知らない場合は、気づかずに終わるかも知れませんが、Pythonの徹底した文法ルールによる読みやすさ、書きやすさは、プログラミング初心者にとっては大きなメリットです。

初心者のうちは「動けばいい」というスタンスでコードを書いてしまうものですから、読みづらいコードを書いてしまいがちです。

そして、その調子のまま習得を重ねてコードが増えてくると、メンテナンス性や再利用性に乏しいコードばかりに囲まれるという、かなり苦しい状況が待ち受けています。

ですが、Pythonはそうなりにくい。なにせ、きれいに書かないとコードが動かないわけですから。

初心者のうちからキレイなコードが書ける。

これは、プログラミング初心者にとって、とってもありがたいことです。もしかすると、Pythonをやれば、他のプログラムもキレイに書けたりするというメリットもあるかも知れません。

広がる将来性

Pythonは当然実務に活用する方向でスキルを磨いていくのも良いですが、ある程度習得してきた先には

  • GUIによるアプリケーション開発
  • Webアプリケーション開発
  • データ解析
  • 機械学習

など、IT業界のトレンドの最先端の領域も視野に入れることができます。

もちろん、そのために磨くべきスキルや知識は少なくないでしょうが、複数の最先端の領域へと道がつながっているというのは、たいへん魅力的ですし、強力なメリットと言えるでしょう。

まとめ

Pythonの魅力、なかなかすさまじいものがありますね。

非エンジニアのWindows派の一般ビジネスマンにとっても、Pythonには学ぶべき十分な魅力とメリットがあることがおわかりいただけたと思います。

ただ、Pythonを学ぶ上で、ちょっとだけ注意点があります。

Pythonの世界は非常に広く、そして展開がものすごく速いです。

バリバリのデータ分析系の人たちにとってベストな環境やテクニックと、初心者の一般ビジネスマンにとってベストな環境やテクニックは異なりますよね。誰をターゲットにした情報なのかを見定めながら、情報の取捨選択をすることが求められます。

また、ネットや書籍で得られる情報は、少し前の情報で既に古い情報かも知れないということにも注意を払う必要があります。

この二点、ぜひ気を付けてください。

ということで、このシリーズでは、非エンジニアのWindows派の一般ビジネスマンがPythonを強力な武器として身に着けていくためのステップとなるべく展開していきますので、ぜひご活用くださいませ。

次回は、Windows版Pythonをインストールしていきます。

非エンジニアがWindowsでPythonを始める場合どこから何をインストールするべきか
非エンジニアの一般ビジネスマンの初心者がPythonをはじめる際のWindows版PythonでオススメのディストリビューションやIDEを考えつつ、それを実際にインストールするところまでをお伝えします。

どうぞお楽しみに!

連載目次:非エンジニアの初心者がPythonをはじめるための第一歩

シンプルな文法、豊富なライブラリが特徴の人気プログラミング言語Python。Windowsマシンをお仕事で使用している非エンジニアの一般ビジネスマン向けに、Pythonをはじめるための予備知識をお伝えしつつ、開発環境の準備をするところまでお手伝いします。
  1. 非エンジニアのWindows派がPythonを始めるメリットをこれでもかと説明します
  2. 非エンジニアがWindowsでPythonを始める場合どこから何をインストールするべきか

非エンジニアがWindowsでPythonを始める場合どこから何をインストールするべきか

$
0
0

python-download

みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

非エンジニアの一般ビジネスマン向けにPythonをお仕事に活用すべくステップアップしていく方法をお伝えしています。

前回はこちらの記事。

非エンジニアのWindows派がPythonを始めるメリットをこれでもかと説明します
Pythonを学ぶことは、非エンジニアのプログラミング初心者、一般のビジネスマン、Windowsユーザーにとって有益です。今回はPythonとは何か?そしてそれを学ぶメリットについてお伝えしていきます。

Pythonとはどういうプログラム言語なのか、またプログラミング未経験の一般ビジネスマンがPythonを学ぶメリットは何なのか、ということについてお伝えしました。

もう、それはもう十分にPythonを学ぶメリットご理解いただけたと思いますので、早速インストールして触っていきましょう!

…としたいのですが、Pythonの場合、どこから何をインストールすればいいのか、けっこういろんな条件とか選択肢があって迷っちゃいます。

ということで、今回は非エンジニアの一般ビジネスマン向けWindows版PythonでオススメのディストリビューションやIDEを考えつつ、それを実際にインストールするところまでまでをお伝えします。

では、行ってみましょう!

Windows版Pythonの場合、どこから何をインストールする?

さて、Windows版Pythonと一言にいっても、実はいくつかの条件があり、そしてそれぞれの条件にいくつかの選択肢があります。

どのような条件と選択肢があるかというと

  • バージョン:2系か3系か
  • ディストリビューション:公式か、Anacondaか、またはそれ以外か
  • 32bitか64bitか
  • IDE(統合開発環境):IDLEか、PyCharmか、Spyderか、もしくは使わずにエディタを使うか

などなど…

もうわけわからないですかね?

一つ一つ説明していきますね。

バージョン

Pythonには、いわゆるPython自体のバージョンとして2系、3系があります。

2系よりも3系のほうが新しいバージョンなのですが、互換性が低いために注意が必要のようです。

ゆくゆくは2系のサポートが切れるということですので、今から始めるのであれば3系から始めれば問題なしです。

執筆している8月時点で、最新の3系のバージョンは3.6.2です。

ディストリビューション

ディストリビューションとは配布物のことです。

ディストリビューション (distribution) とは. 分布 · 流通 · ソフトウェアディストリビューション – コンパイル済みで設定済みのソフトウェアの集まり。

引用Wikipedia – ディストリビューション

Pythonの場合は「バッテリー同梱」の思想がありますので、ディストリビューションの中にいろいろと入れてくれています。

実は、このディストリビューションに公式とサードパーティ製がという選択肢があります。

特に「Anaconda」というディストリビューションがデータ分析系のライブラリが充実しているなどで人気のようです。

少し前までは、データ分析目的でなくとも、Windows版の公式のディストリビューションは32bit版しかないとか、pipというパッケージ管理ツールが入ってないとか、いろいろな理由からAnacondaをオススメする声が多かったように見受けられました。

ですが、最近では公式のディストリビューションでも、Windowsの64bit版がありますし、pipも含まれています。ですから、初心者向けとしては公式という安心感を優先してよいのではないかと考えます。

32bit版か64bit版か

これは最近のWindowsマシンであれば64bit版が多いと思いますが、マシンにあったほうを選択すればOKです。

IDE(統合開発環境)

IDE(統合開発環境)とは、プログラムを編集するエディタ、コンパイラ、デバッガなどを含むソフトウェア開発環境のことを言います。

Pythonはスクリプト言語ですからコンパイラは不要ということで、IDEとしてはエディタとデバッガが主な機能になりますね。

公式ディストリビューションに同梱しているのは、「IDLE」というIDEで、正直機能としては乏しいと言われています。

それ以外に、PyCharm、Spyderまたはその他のIDEがおすすめという情報を目にしますね。

ただ、いずれのIDEも英語表記になりますので、初心者のうちはむしろ多機能なIDEよりも、シンプルなIDLEのほうが適していると考えます。

ですから、本シリーズではしばらくIDLEを使って進めていきます。

Windows64bit版Pythonのダウンロードとインストール

ようやく決まりましたね…もう、勝ったも同然です。Pythonはここまでが大変なのです。

あとはバッテリー同梱ですから、簡単…!なはずです。

では、公式ディストリビューションのWindows版Pythonのダウンロードとインストールを進めていきましょう。

Pythonをダウンロード

まず、公式サイトのダウンロードページへ遷移します。

The official home of the Python Programming Language

丁寧にWindows版のダウンロードボタンを表示してくれてますから、3系の最新版(執筆時は3.6.2)をクリック…したいのはやまやまなのですが、ここをクリックすると32bit版のダウンロードになっちゃいます。

ですから、64bit版が欲しい場合は、下のテーブルの「Python3.x.x」の「Download」をクリック!これが正解。

Python.org Windows版ダウンロードページ

遷移先の一覧から「Windows x86-64 executable installer」をクリックしましょう。

Python.orgからWindows64bit版インストーラーをダウンロード

すると、インストーラー「python-3.6.2-amd64.exe」のダウンロードが開始します。

Pythonのインストール

ダウンロードが完了したら、インストーラーをダブルクリックです。

まず「64-bit」であることをバッチリ確認した上で、ウィンドウ下部の「Add Python 3.x to PATH」にチェックをします。

いわゆる「パスを通す」というやつで、これをチェックしておくことで、どこからでもPythonを実行できるようになる的な設定です。

チェックができたら、「Install Now」です。

PythonのインストーラーでInstall Now

「このアプリがデバイスに変更を加えることを許可しますか?」ときかれるので、「はい」をクリック。

このアプリがデバイスに変更を加えることを許可しますか?

そして、ちょっと待ちます。

Windows版Pythonインストール中                     

ちょっと待つと「Setup was successful」ということで、セットアップが完了します。

「Disable path length limit」はWindows10からファイルパスの最大が260を超えて扱えるようになったということで、その設定なのですが、まあそんなに長いのは使わないだろうということで、気にしないでOKです。

ということで「Close」でOKです。

Windows版Pythonのセットアップ完了

これでインストールは完了です!

まとめ

非エンジニアの一般ビジネスマン向け、Windows版Pythonは…

  • 3系
  • Windows64bit版
  • 公式ディストリビューション
  • IDLE

ということで進めていきます。安心感重視の公式ベッタリセレクトです。

そして、実際にインストールをするところまでお伝えしました。

これで、いよいよPythonを実行できる状態になりました。

次回、さっそくPythonのプログラムを実行していきましょう!

どうぞお楽しみに!

連載目次:非エンジニアの初心者がPythonをはじめるための第一歩

シンプルな文法、豊富なライブラリが特徴の人気プログラミング言語Python。Windowsマシンをお仕事で使用している非エンジニアの一般ビジネスマン向けに、Pythonをはじめるための予備知識をお伝えしつつ、開発環境の準備をするところまでお手伝いします。
  1. 非エンジニアのWindows派がPythonを始めるメリットをこれでもかと説明します
  2. 非エンジニアがWindowsでPythonを始める場合どこから何をインストールするべきか

【初心者向け】IDLEを使ってはじめてのPythonプログラムを対話モードで実行する

$
0
0

python-idle

みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

非エンジニアかつ超初心者Windowsユーザー向けPythonプログラムの始め方についてお伝えしています。

前回はこちらの記事でした。

非エンジニアがWindowsでPythonを始める場合どこから何をインストールするべきか
非エンジニアの一般ビジネスマンの初心者がPythonをはじめる際のWindows版PythonでオススメのディストリビューションやIDEを考えつつ、それを実際にインストールするところまでをお伝えします。

公式サイトからWindows版、3系のPythonをダウンロードしてインストールするところまでお伝えしました。

とうことで、今回はいよいよ実際にPythonのプログラミングをはじめます。

インストールするとデフォルトでIDLEという開発環境が同梱されていますので、それを使ってはじめていきますよ。

では、いってみましょう!

Pythonの統合開発環境「IDLE」とは

前回の記事でもお伝えした通り、Pythonは「バッテリー同梱」ですから、公式のディストリビューション(配布物のこと)に、Python本体以外に必要なものが全て含まれていて、インストールしたらすぐにプログラミングが開始できるようになっています。

例えば…

  • 標準ライブラリ
  • pip:パッケージ管理ツール
  • py:Pythonの実行ランチャ
  • IDLE:統合開発環境

といった具合です。

PythonはコマンドプロンプトやPower Shellからも操作・実行できますし、スクリプト言語ですから既存のエディタでスクリプトの編集ができるのですが、非エンジニアにとって黒い画面はちょっと抵抗感がありますよね。

また、初心者の段階では多機能すぎるエディタから何を使うか…その判断は難しいものです。

ということで、Pythonに慣れるまでは、公式ディストリビューションにバンドルされている、統合開発環境IDLEを使うことをおすすめします。

IDLEは以下のような機能を持つシンプルな統合開発環境です。

  • コード入力、出力、エラーメッセージの表示を行うための対話型Shellウィンドウ
  • キーワードのハイライトや自動インデント機能を備えたエディタ
  • ブレークポイントの設置やステップ実行を行うデバッガ

機能は少なめですが、これさえあれば初期の学習と開発は十分にできるというわけです。

IDLEを起動する

では、さっそくIDLEを起動していきましょう。

公式Pythonをインストールをしたのであれば、Windowsメニューの「最近追加されたもの」の中に「IDLE」が含まれているはずです。

これをクリックするとIDLEが起動します。

WindowsメニューからIDLEを起動する

頻繁に起動をすることになりますので、Windowsメニューからドラッグしてショートカットアイコンを作っておきましょう。

起動すると以下のような画面が表示されます。

Python IDLEのShellウィンドウ

これがIDLEのShellウィンドウです。この画面で、コマンドを入力したり、対話式プログラミングをしたり、実行結果やエラーを表示したりします。

対話式のPythonプログラミング

Pythonでは対話するように一行ずつプログラムを入力、実行できる対話モードがあります。

打ったコードの結果を即座に見ることができますから、ちょっとしたコード確認や、お試し実行をしたいときに便利です。

IDLEのShellウィンドウで対話モードを試すことができますので、実際に対話モードでPythonプログラミングをしてみましょう。

print()関数で文字列を出力する

まず、最も簡単な例として、print()関数を使って文字列を表示をしてみましょう。

Shellウィンドウで「>>>」の後にカーソルが配置されていると思いますが、この「>>>」はプロンプトと言いまして、ユーザーから入力を受け付けている状態です。

ここで以下のコードを入力して Enter をしてみましょう。

>>> print('Hello Python!')

すると、Shellウィンドウには以下のように「Hello Python!」と出力されましたね。

Pythonで「Hello Python!」と表示

print()関数は出力対象を文字列として出力する関数です。

print(出力対象)

今回は「Hello Python!」という文字列そのものを出力対象としています。Pythonでは文字列はシングルクォーテーション(‘)またはダブルクォーテーション(“)で囲みます。

変数を使って複数の命令を実行する

では、続いて以下のコマンドを一行ずつ打ち込んで Enter をして、それぞれの実行結果を見てみましょう。

>>> tax = 8 / 100
>>> price = 5000
>>> print(price * (1 + tax))

すると、実行結果は以下のようになりますね。

Python IDLEで複数コードを実行する

taxやpriceは変数と呼ばれるもので、値を一時的に格納できる入れ物のようなものです。

以下のようにイコール記号(=)を使った式で、変数に値を格納することができ、そのことを代入といいます。

変数 =

変数名は任意に決めることができ、一般的にはアルファベットで構成します。Pythonでは日本語の変数名をつけることもできますが、アルファベットのほうが良いでしょう。

上記プログラムはtaxとpriceを指定して、その税込価格を出力するというものですね。

このように、Pythonの対話モードでは一行ずつプログラムを実行することができます。

なお、変数の値は、Shellウィンドウのメニュー「Shell」→「Restart Shell」をするか、Shellウィンドウを閉じるまでは保持されています。

まとめ

統合開発環境IDLEを使ってPythonプログラムを対話モードで実行してみました。

対話モードはPythonの特徴の一つで、ちょっとしたコードの確認を素早く行うことができます。

また、print()関数や変数、算術演算など、基本的かつ重要な書式も登場しましたので、合わせてバッチリ覚えておきたいところです。

実際にプログラムを作る場合は、複数の命令をファイルに書き出して、それをまとめて実行することが多いので、次回はその方法についてお伝えします。

どうぞお楽しみに!

連載目次:非エンジニアの初心者がPythonをはじめるための第一歩

シンプルな文法、豊富なライブラリが特徴の人気プログラミング言語Python。Windowsマシンをお仕事で使用している非エンジニアの一般ビジネスマン向けに、Pythonをはじめるための予備知識をお伝えしつつ、開発環境の準備をするところまでお手伝いします。
  1. 非エンジニアのWindows派がPythonを始めるメリットをこれでもかと説明します
  2. 非エンジニアがWindowsでPythonを始める場合どこから何をインストールするべきか
  3. 【初心者向け】IDLEを使ってはじめてのPythonプログラムを対話モードで実行する

【初心者向け】IDLEを使ってPythonプログラムを作成して実行する一連の流れ

$
0
0

python-editor-

みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

非エンジニア一般ビジネスマン向け、はじめてのPythonプログラミングシリーズです。

前回はコチラの記事で、IDLEを使って対話モードでPythonプログラミングを実行してみました。

【初心者向け】IDLEを使ってはじめてのPythonプログラムを対話モードで実行する
非エンジニアかつ超初心者Windowsユーザー向けPythonプログラムの始め方についてお伝えしています。今回は実際にPythonのプログラミングをはじめます。公式のIDLEという開発環境を使います。

もちろん、Pythonによるプログラミングは一行ずつではなくて、複数の命令をまとめて実行したいときもありすよね。

ということで、今回はIDLEのテキストエディタでPythonプログラムを作成して実行する一連の流れをお伝えします。

では、行ってみましょう!

IDLEで新規ファイルを作成する

Pythonのプログラムはテキストファイルに記述して実行することができますので、IDLEのテキストエディタで新規作成をしましょう。

IDLEを立ち上げて、Shellウィンドウのメニューから「File」→「New File」、またはショートカットキー Ctrl + N で新規ファイルを作成します。

IDLEで新規Pythonファイルを作成

Shellウィンドウと似た真っ白な別画面が開きますが、こちらはEditorウィンドウといいまして、すなわちエディタです。プロンプト「>>>」 がありませんし、ちょっぴりメニューの構成が異なります。

ウィンドウタイトルは「Untitled」になっていますね。名前のない新規ファイルをEditorウィンドウで開いている状態ということです。  

IDLEのEditorウィンドウ

IDLEのEditorウィンドウでPythonプログラムを編集する

では、IDLEのEditorウィンドウでPythonプログラムを編集していきましょう。では、お決まりですが、まずは以下コードでよろしくお願いします。

print('Hello Python!')

なお、IDLEではShellウィンドウでもEditorウィンドウでも、コード補完が使えます。メニューですと「Edit」→「Show Completions」なのですが、普通はショートカットキー Ctrl + Space キーを使うでしょうね。

例えば「pr」と入力した時点で Ctrl + Space をすると、「たぶんこれでしょ?」という候補がリストで表示されます。

既にカーソルが当たっていれば Tab キーを二回、カーソルの上下に候補があれば / キーで選んで Tab キーで確定させることができます。

IDLEの補完候補リスト

入力完了すると以下のような感じですね。エディタではキーワードの役割ごとにカラーリングされます。

ウィンドウのタイトルが「*Untitled*」とアスタリスクで囲まれていますが、これは保存されてない変更箇所があるということを表しています。

IDLEのEditorウィンドウで変更が保存されていない

IDLEで編集したファイルを保存する

ですから、実行する前に編集したファイルの保存をしましょう。

メニューの「File」→「Save」またはショートカットキー Ctrl + S で保存ですね。

IDLEでPythonファイルを保存する

「Untitled」の場合は「名前を付けて保存」になりますので、名前をつけてあげましょう。「hello」としましょうか。

ちなみに、Pythonのファイルの拡張子は「py」ですが、IDLEで保存する場合は拡張子は自動で付与されます。

また、保存場所はあとでダブルクリックするので、デスクトップにでもしておきましょう。

Pythonファイルの保存場所を決める

保存すると、エディタウィンドウタイトルにファイル名とパスが表示されます。

Pythonファイルを保存したIDLEのEditorウィンドウ

ちなみにpyファイルはこんなアイコンです。

pyファイルのアイコン

ちなみに、変更を保存していないときに実行をしようとすると、以下ウィンドウで保存をうながされます。

IDLEで保存前に実行をした場合

IDLEでPythonプログラムを実行する

では、いよいよPythonプログラムを実行していきましょう。

Editorウィンドウで対象となるPythonプログラムを開いた状態で、メニューから「Run」→「Run Module」または F5 キーです。

IDLEでPythonプログラムを実行する

これでプログラムが実行されます。print()関数の結果はShellウィンドウに出力されます。ちなみに、今回の手順で「Run Module」した場合は、RESTARTになっていますね。

Pythonプログラムを実行してShellに出力された

Pythonプログラムをダブルクリックで実行する

pyファイルはダブルクリックで実行することができます。

先ほどデスクトップに保存した「hello.py」をダブルクリックしてみると…

Pythonファイルをダブルクリックして一瞬で消えるpy.exe

この画面が表示されて、一瞬で消えます。頑張ってキャプチャしました。

順を追って説明します。

まず、この開いたウィンドウは「py.exe」というソフトウェアで実行ランチャと呼ばれる種類のアプリケーションです。Pythonのディストリビューションに含まれていて、インストール時にPythonファイル(*.py、*.pyw)に関連付けられます。

つまり、pyファイルをダブルクリックすると、py.exeで実行されるということです。

ダブルクリック時にpy.exeがすぐに消えないようにする

IDLEで実行する分には問題ないですが、ダブルクリックで実行した際には実行完了と同時にpy.exeが閉じてしまうので、その出力内容を確認することができません。

それを防ぐためには、hello.pyを以下のように修正します。

print('Hello Python')
input('Enterキーを押して下さい')

input()関数は入力から1行を読み込み文字列に変換して返す関数です。

input(文字列)

文字列が指定されていれば、標準出力にその文字列を出力した状態でユーザーの入力を待ちます。

標準出力というのは、IDLEで実行すればそのShellウィンドウ、ダブルクリックで実行すればpy.exeとなります。

ですから、実際には何かしらからの入力を求められているのですが、 それが「タメ」になってくれているというわけです。

Enter キーを押した時点で、一行入力したということになりプログラムは終了します。

Pythonファイルをダブルクリックしてpy.exeで入力待ち

Pythonプログラムのファイルを開く

これでPythonoプログラムの作成と実行まで一連の流れは確認できましたね。

また、Pythonプログラムの編集を再開したいときは、IDLEで該当のpyファイルを開けばOKです。

ShellウィンドウまたはEditorウィンドウのメニューから「File」→「Open」またはショートカットキー Ctrl + O です。

IDLEでPythonファイルをオープンする

ファイル選択ダイアログが開きますので、目的のpyファイルを選択すれば、Editorウィンドウでそのファイルを開きます。

まとめ

IDLEでPythonプログラムの作成、編集、保存、実行そしてオープンする方法をお伝えしました。

これで、Pythonプログラムをする一連の流れを確認できましたね。

あとは、バリバリコードを覚えてお仕事に活用していくばかりですね!

最後に、おさらい用として今回紹介したIDLEのショートカットキーについてまとめておきますね。

ショートカットキー 内容
Ctrl + N 新規作成
Ctrl + O 開く
Ctrl + Space 補完候補の表示
Ctrl + S 保存
F5 実行

次回もお楽しみに!

連載目次:非エンジニアの初心者がPythonをはじめるための第一歩

シンプルな文法、豊富なライブラリが特徴の人気プログラミング言語Python。Windowsマシンをお仕事で使用している非エンジニアの一般ビジネスマン向けに、Pythonをはじめるための予備知識をお伝えしつつ、開発環境の準備をするところまでお手伝いします。
  1. 非エンジニアのWindows派がPythonを始めるメリットをこれでもかと説明します
  2. 非エンジニアがWindowsでPythonを始める場合どこから何をインストールするべきか
  3. 【初心者向け】IDLEを使ってはじめてのPythonプログラムを対話モードで実行する
  4. 【初心者向け】IDLEを使ってPythonプログラムを作成して実行する一連の流れ

GoogleサイトにGoogleドライブのフォルダとスプレッドシートのグラフを埋め込む方法

$
0
0

こんにちは!とくP@toku_jpnです!

前回はGoogle サイトの基本的な使い方を10分で作成できる簡単な社内ポータルサイトを作りながらお伝えしていきました。

Googleサイトで超シンプルな社内ポータルサイトを10分で作る方法
今回より社内ポータルサイトを実際に作成していきます!連載第二回目の今回はGoogleサイトの基本的な使い方をご説明していきます!10分で作成できる簡単な社内ポータルサイトの完成をゴールとして、サイトを作成しながらひとつひとつ操作方法をご紹介していきますね!

さて、売上数の記録やグラフの確認などをルーチンワークとして行っている会社は多いと思いますが、毎日同じファイルにアクセスをして手間に感じたことはなかったでしょうか?

社内ポータルサイトでファイルのあるフォルダやいつも確認しているグラフを表示することでその手間を解消することができます。

今回はその手間を解消する方法としてGoogle サイトでGoogleドライブを表示する方法とスプレッドシートのグラフを埋め込む方法をご紹介していきます。

GoogleサイトにGooleドライブのフォルダを埋め込む

初めによく使うファイルへアクセスするためのショートカットを作成するための方法です。

これはよく使うファイルが入ったGoogle ドライブ内のフォルダを社内ポータルサイト上で表示することで実現できます。完成図はこちら。

これにより、Google ドライブにアクセスすることなく社内ポータルサイト上で特定のフォルダ内での操作をおこなうことができます。

ちなみにですが、Google ドライブ内のフォルダの埋め込みは他のWebサイト作成サービスでは行うことができません。

Googleのサービスで作成したファイルの多くはリンク先URLを記述することで他のサイトに埋め込みができますが、ドライブの埋め込みは情報漏えいを考慮してGoogle サイトに限定しているものと思われます。

Google ドライブのフォルダを挿入する

それでは、作成していきましょう!個人利用のポータルサイトである場合を除いて、埋め込みしたいフォルダはあらかじめ共有設定で公開設定をしておいてください。

1.右側メニューより「ドライブ」を選択します。

2.Googleドライブからフォルダを選択する画面が表示されますので、社内ポータルサイト上より直接アクセスしたいフォルダを探し出して、選択します。

3.最後に挿入ボタンをクリックして挿入します。

これだけの処理で埋め込みが完了します。

あとはポータルサイト上でどのような位置で、枠の大きさで表示させるのかを調整してください。

リスト表示とギャラリー表示

埋め込みをしたフォルダ内ファイル一覧は「リスト表示」か「ギャラリー表示」かの変更をすることができます。

ギャラリー表示は大きなファイルアイコンで表示されることになります。

個人的には、ギャラリー表示よりはリスト表示のほうがGoogleドライブ表示の枠内に多くのファイル名が表示されやすくて使いやすいのではないかと思いますが、好みがあると思いますのでお好きな表示方法を選んでください。

Googleサイトにスプレッドシートのグラフを埋め込む

次は社内ポータルサイト上で売上グラフを確認する方法です!

こちらはGoogle スプレッドシートであらかじめ作成したグラフを埋め込むことで実装できます。完成図はこちら。

スプレッドシートのグラフを追加する

売上グラフを埋め込む方法は以下のとおりです。

1.あらかじめGoogle スプレッドシートでグラフを作成しておいてください。

Google サイトでの編集時にはグラフそのものを作成することはできないので、必ず事前にグラフを用意しておいてください。

2.Google サイト編集の右メニューから「グラフ」を選択します。

3.ここで表示された画面からまずは挿入したいグラフが存在するスプレッドシートのデータを選択して挿入ボタンを押します。

4.その後、そのスプレッドシート内に作成されているグラフの一覧が表示されますので、その中から挿入したいグラフを選択して挿入ボタンをクリックします!

これで挿入が完了しました。

売上グラフはスプレッドシートのデータと連動する!

Googleサイトへのグラフの挿入は画像として挿入されているわけではなく、元データのスプレッドシートと連携を持った上で挿入されています。

なので、元データのスプレッドシートデータが更新されるとグラフの表示も更新されます!

社内ポータルサイトからこのグラフをクリックするとグラフを作成した本データにアクセスすることもできるので、グラフでの売上確認をしつつ、売上の記録もしていくことができます。

今回完成した社内ポータルサイト

今回の内容を通じてGoogle Driveとグラフを挿入したことで作成している社内ポータルサイトはこのようになりました!

このような感じで追加していきたい機能を付け足していくことで、どんどん充実した社内ポータルサイトが出来上がっていきます。

おわりに

いかがでしょうか。

今回はGoogle サイトの使い方を更に掘り下げて、Googleドライブやグラフの挿入方法の紹介を通じて、より便利に社内ポータルサイトを利用するご提案をしていきました。

基本的にはファイルを作成する→挿入するという簡単はプロセスは一緒なので、あとはアイデア次第でどんどん良いものが出来上がっていくのかなと思います。

他にもYouTubeやGoogleマップ、Googleスライドなども挿入することができます。

ぜひ、いろいろ挿入してみてあなただけの良い社内ポータルサイトを作り上げていってください!

それでは〜!

連載目次:新Googleサイトで超簡単に社内ポータルサイトを作る

Googleサイトを使えば本格的な社内ポータルサイトもドラッグ&ドロップなどの簡単操作で作成することができます。本シリーズではGoogleサイトとは何か、そしてその使い方を紹介していきます!
  1. 簡単に本格的な社内ポータルサイトを作成できるGoogleサイトとは?
  2. Googleサイトで超シンプルな社内ポータルサイトを10分で作る方法

Python初心者向けIDLEのウィンドウサイズ・フォント・配色のおすすめ設定

$
0
0

python-highlighting

みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

非エンジニア一般ビジネスマ向け、はじめてのPythonプログラミングシリーズです。

前回の記事はこちら。

【初心者向け】IDLEを使ってPythonプログラムを作成して実行する一連の流れ
非エンジニア一般ビジネスマン向け、はじめてのPythonプログラミングについてお伝えしています。今回は、IDLEのテキストエディタでPythonプログラムを作成して実行する一連の流れをお伝えします。

公式Pythonで用意されているIDLEという統合開発環境で、Pythonプログラミングを作成&実行する一通りをお伝えしました。

で、いよいよ本格的にプログラミングに入っていきたいところなのですが、その前にIDLEの設定をちょっといじっておきましょう。

というのも、開発環境の設定ってとっても大事で、これからの習得速度やモチベーションにジワジワとかかわってきますからね。

ということで、今回はPython初心者向けおすすめのIDLEのセッティングについてお伝えします。

Settingsウィンドウを開く

今回、IDLEについていくつかの設定をしますが、その全てが「Settingsウィンドウ」を使いますので、その開き方からお伝えします。

まず、ShellウィンドウまたはEditorウィンドウのメニューから「Options」→「Configure IDLE」を選択します。

IDLEのSettingsウィンドウを開く

これで、Settingsウィンドウが開きます。 Settingsウィンドウは今回さまざまな設定をする際に使いますので、出し方を覚えておいてくださいね。

IDLEのSettingsウィンドウ

ウィンドウサイズの初期値を変更する

では、Settingsウィンドウを活用しておすすめ設定をしていきましょう。

さて、デフォルトの状態でIDLEを起動すると、びっくりするほどウィンドウが縦長です。ShellウィンドウとEditorウィンドウを両方開く場合も多いですから、それだけで以下のようになっちゃいます。

IDLEのデフォルトウィンドウサイズは縦長

長っ!

ですから、ウィンドウサイズの初期値を変更して、もうちょっと画面領域をエコにしておきましょうか。

先ほどのSettingsウィンドウを開いて、「General」タブを開きます。中断ほどの「Initial Windows Size」というエリアがありますので、その「Height」の値を変更しましょう。例えば「20」として「OK」です。

IDLEのウィンドウサイズの初期値を変更

すると、次回以降起動時のウィンドウサイズがコンパクトになります。Initial Windows Sizeの単位は「文字数」ですので、もともと40文字分だった縦サイズを20文字分に変更したわけです。

IDLEのウィンドウサイズの初期値を変更した

フォントを変更する

デフォルトのフォントは10ポイントの「MS ゴシック」です。ちょっと見づらいので、フォントサイズと種類を変更しておきましょう。

ちなみに本シリーズの記事はわかりやすさのために12ポイントに変更して書いていましたが、実際のサイズは以下のような感じです。

IDLEのデフォルトのフォント

では、設定を変えていきましょう。

Settingsウィンドウを開くと最初に開いている「Fonts/Tabs」タブで設定をします。

フォントの種類は「Font Face」というエリアで、フォントサイズは「Size」をクリックするとドロップダウンリストが開きますので、その中から選択をします。

今回は、フォント種類を「メイリオ」、フォントサイズを「12」としてみます。

IDLEのフォント種類・サイズを変更する

フォント種類とサイズを変更したのが、以下画面です。少し見やすくなりましたよね。ね?

IDLEのフォントを変更した

IDLEの背景色や文字色を変更する

次はIDLEの背景色や文字色の設定を変更していきます。

デフォルトの設定ですと、こんな感じ。

IDLEのデフォルトの文字色と背景色

このままでもいいっちゃいいんですが、

  • 背景色が真っ白なので長時間の作業は目がチカチカする感じがある
  • なんかカラフル過ぎる

という感じもしなくはないです。

最終的には好みなのですが、ちょっくら変更をしてみましょう。

Highlightingタブを開く

では、もうおなじみになったSettingsウィンドウを開きます。今度は「Highlighting」タブです。

IDLEのHighlighting設定

ちょうど、現在の設定のプレビューがされていますので、ここを見ながら変更していくことができますね。

ビルトインテーマを選択する

左側の「Custom Highlighting」のエリアで、対象を選択して背景色と文字色を変えていくこともできます。

ですが、項目が多すぎて日が暮れそうですし、くちゃくちゃになりそうですよね…。

ですので、まずは右側の「Highlighting Theme」から「a Built-in Theme」つまり最初からビルトインされているテーマを選んでみます。

デフォルトで選択されているテーマは「IDLE Classic」ですが、背景色が暗そうな「IDLE Dark」にしてみます。

IDLEのHighlightingでビルトインテーマを選ぶ

お、少し目に優しい感じになりましたかね。

対象ごとにカスタム設定をする

ただ、ちょっとまだカラフル過ぎる感がありますので、左側の「Custom Highlighting」のエリアで対象ごとに個別に設定をしてみます。

まず、試しにコメントの色を変更してみましょう。

プレビュー画面から対象となる部分をクリックすると、その対象の配色を変更できるようになります。

次に、ラジオボタンで変更する内容を選択します。

  • Foreground:前景色(=文字色)
  • Background:背景色

今回はコメントの文字色を変更したいので、Foregroundです。

IDLEのコメントをカスタムで変更する

そして「Choose Colour for:」をクリックすると、色選択画面になりますので、好きな色を選びましょう。今回はグレーを選んでみます。

IDLEのHighlightingのカラーパレット

「OK」をすると、以下「New Custom Theme」というダイアログが開き、「新しいカスタムテーマとして保存するから、名前を入力してね」とお願いされますので、入力して「OK」してあげましょう。

IDLEでカスタムテーマに名前をつける

はい、変更されました!また、「Highlighting Theme」が「My Theme」になりましたね。

IDLEのHighlightingでコメントの文字色を変更した

カスタムテーマを完成させる

この流れで対象を選んで配色をセレクトしていき、カスタムテーマを完成させていきましょう。

なお、「IDLE Dark」から私が変更した箇所は…

対象 前景 背景
Python Comments グレー
Python Keywords 水色
Python Definitions
Python Strings 黄色
Python Builtins 水色
Editor Breakpoint 黄色

です。この設定をすると以下のようになります。

IDLEのHighlightingでカスタムテーマを作成した

Editorウィンドウはこんな感じ。

IDLEのカスタムテーマ設定(Shellウィンドウ)

Shellウィンドウはこんな感じです。

IDLEのカスタムテーマ設定(Editorウィンドウ)

見た目としては落ち着きありますし、よさそうです!

まとめ

Python初心者向けIDLEのおすすめセッティングについてお伝えしました。

以下3点をSettingsウィンドウにて変更しました。

  • 初期ウィンドウサイズ
  • フォント種類とフォントサイズ
  • 文字色と背景色

これで、初期ウィンドウサイズがいい感じになって、フォントが見やすくなって、配色もテンションが上がるようになりましたね。

IDLEには他にも機能がありますので、折を見て紹介していきますね。

どうぞお楽しみに!

連載目次:非エンジニアの初心者がPythonをはじめるための第一歩

シンプルな文法、豊富なライブラリが特徴の人気プログラミング言語Python。Windowsマシンをお仕事で使用している非エンジニアの一般ビジネスマン向けに、Pythonをはじめるための予備知識をお伝えしつつ、開発環境の準備をするところまでお手伝いします。
  1. 非エンジニアのWindows派がPythonを始めるメリットをこれでもかと説明します
  2. 非エンジニアがWindowsでPythonを始める場合どこから何をインストールするべきか
  3. 【初心者向け】IDLEを使ってはじめてのPythonプログラムを対話モードで実行する
  4. 【初心者向け】IDLEを使ってPythonプログラムを作成して実行する一連の流れ
  5. Python初心者向けIDLEのウィンドウサイズ・フォント・配色のおすすめ設定

プログラミングは一切不要!スプレッドシートの関数だけでWEBサイトの情報収集を自動化する

$
0
0

こんにちは!
データアナリストのタダケン(@tadaken3)です。

データ分析やレポート作成をしていて、WEBサイト上にあるデータを使ってみたいって思うことあったりしませんか。5行ぐらいのデータであれば、コピペしてすむかもしれませんが、大量にデータがある場合は、そうもいきません。

もしプログラミングができるのであればスクレイピングという方法を使って、WEBサイトから情報取得することもできます。しかし、スクレイピングは実はプログラマだけの特権ではありません。

Googleスプレッドシートを使えば、標準の関数だけでスクレイピングできてしまうのです。今回は、WEBサイトのデータを簡単に取得する方法をお伝えします。

IMPORTHTML関数を使ってWEBサイトのリストやテーブルの情報取得する

WEB上にあるテーブルやリストからデータを取得するには、Googleスプレッドシートに標準で搭載されているIMPORTHTML関数を使います。

書き方は

=IMPORTHTML(URL,クエリ,指数)

です。

クエリには、”table”(表)か”list”(リスト)を指定します。

指数ではWEBサイト上に含まているテーブルもしくはリストのうち、何個目のテーブル・リストを取得するのか指定します。例えば、WEBサイトに3つのテーブルがある場合、2個めのテーブルを取得したい場合は、2を入れます。

IMPORTHTML関数を実践!

具体的な例を見ていきましょう。今回は「いつも隣にITのお仕事」ブログの以下の記事からテーブルとリストをそれぞれ取得してましょう。Google Apps Scriptで積み上げグラフを作る方法を解説した記事ですね。

【複数の要素もひと目で分かる】Google Apps Scriptで積み上げ棒グラフを作成する方法
Google Apps Scriptを使って、複数の系列を持ったグラフを作成する方法を解説します。setStackedメソッドを使い、積み上げ縦棒グラフを作成し、データの可視化を行います。

まずはテーブルの取得方法です。

=IMPORTHTML(“https://tonari-it.com/gas-chart-setstacked/”,”table”,3)

リストを取得したい場合は、クエリにリストを指定します。

=IMPORTHTML(“https://tonari-it.com/gas-chart-setstacked/”,”list”,12)

結果はこのようになります。記事の中にあるテーブルと同じ情報が取得できていたら成功です。

IMPORTXML関数を使ってタグを指定して情報を取得する

WEBサイト上にあるほしいデータが必ずしもテーブルやリスト形式になっているとは限りません。その場合は、IMPORTXML関数を使って、HTMLのタグを指定して情報を取得することができます。

書き方は

=IMPORTXML(URL,XPATH)

です。

タグを指定するのに、XPathという構文を使って指定します。

IMPORTXML関数を実践!

IMPORTXML関数を具体例を使ってご説明しますね。今度の例では、「いつも隣にITのお仕事」の記事一覧ページからタイトル一覧を取得していきます。記事一覧は以下のページです。

実際にタイトル一覧を取得するには以下のように書きます。

=IMPORTXML(“https://tonari-it.com/author/tadaken3/”,”//h2/a/@title”)

“//h2/a/@title”はh2タグの下にあるaタグのtitleを取得するというのを表しています。”/”(スラッシュ)がタグのツリー構造を表していて、@titleで要素を指定しています。

結果はこのようになります。

URLを取得したい場合は、”//h2/a/@href”と指定します。例えば、2つを組み合わせて、このような形でタイトルとURL一覧を取得することもできます。

XPathは少しややこしいかもしれませんが、覚えることでHTMLの要素を自在に取得できるようになります。XPathの具体的な記述方法は以下のサイトを参考がなります。少しずつ試してみてくださいな。

最近クローラーを作成する機会が多く、その時にXPathが改めて便利だと思ったので XPathについてまとめてみました! XPathを学ぶ方の役に立てれば幸いです。 # 初級編 ## XPathとは XPathはXML文章中の要素、属...

まとめ

今回はスプレッドシート標準の関数を使って、WEB上のデータを取得する方法をお伝えしました。

  • IMPORTHTML関数でテーブルやリストの情報を取得する
  • IMPORTXML関数でHTMLのタグを指定して情報を取得する

これらの関数を使えば、WEB上のデータを簡単に取得することができます。もちろんWEBサイトが更新されれば、スプレッドシートのデータも自動で更新されます。外部データの分析をする際などにご活用ください!次回もデータ分析に関するテクニックをお伝えしていきますね。

どうぞ、お楽しみに!

Pythonで標準ライブラリのモジュールをインポートして使ってみよう

$
0
0
working-place

photo credit: Seattle Municipal Archives City Light linemen, 1952 via photopin (license)

みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

一般ビジネスマン&初心者向けにPythonで簡単かつお仕事に役立つツールを作る方法についてお伝えしています。

以前、以下の記事でPythonの魅力の一つが、その豊富なライブラリにあるとお伝えしました。

非エンジニアのWindows派がPythonを始めるメリットをこれでもかと説明します
Pythonを学ぶことは、非エンジニアのプログラミング初心者、一般のビジネスマン、Windowsユーザーにとって有益です。今回はPythonとは何か?そしてそれを学ぶメリットについてお伝えしていきます。

既に11万以上も公開されているライブラリも魅力ですが

そもそも、標準で同梱されているライブラリの中にも

  • csv
  • json
  • HTML
  • ファイルやディレクトリ
  • 正規表現
  • 数学
  • 乱数
  • インターネットアクセス
  • データ圧縮
  • パフォーマンス計測

…など、それはもう豊富なラインナップが含まれています。

とお伝えしている通り、公式のPythonディストリビューションに含まれている標準ライブラリだけでも、アイデア次第でかなりいろいろなことができそう…

正直どこから手をつけるか迷っちゃうのですが、手始めに「ファイルやディレクトリ」を操作しながら、Pythonに慣れ親しんでいければと思います。

ほら、大量のフォルダを自動でドバっと作成したりとか、現在のファイルツリーを取得したりとか、そういうのができたら便利そうじゃないですか。

まず今回は、osモジュールとフォルダ操作を題材にして標準モジュールの使い方をお伝えします。

では、行ってみましょう!

モジュールとは何か

まず、モジュールとは何かその定義を明確にしておきましょう。

Pythonの公式ドキュメントの「6. モジュール (module)」には、以下のように定義されています。

モジュールは Python の定義や文が入ったファイルです。ファイル名はモジュール名に接尾語 .py がついたものになります。

なんだか難しそうな定義ですね。

ただ、冷静になってよーく見てみると

  • Pythonの定義や文が入っている
  • ファイル名は(*.py)

…ん?これってただのpyファイル…のようですね。

そうなんです、モジュールは一連の関数を備えたPythonのプログラムです。そして、他のPythonプログラムに埋め込んで使用ができます。

モジュールを組み込むと、そのモジュールに含まれる便利な関数を、作成しているプログラムで使えるようになるということです。

そして、公式Pythonのディストリビューションには標準ライブラリとして多数のモジュール群が付属しているということですね。

モジュールをインポートする

モジュールを利用するには、そのモジュールを読み込む必要があり、そのことをインポートと言います。

モジュールをインポートするには、以下のimport文を使います。

import モジュール名

読み込んだモジュールの関数は以下の形式で利用することができます。関数によっては括弧内に引数が一つ以上必要になります。

モジュール.関数()

osモジュールとos.getcwd関数で現在の作業ディレクトリを調べる

では、試しにOSつまりオペレーティングシステムとやり取りするための機能を備えているosモジュールと、それに含まれる現在の作業ディレクトリを調べるos.getcwd関数を使ってみましょう。

os.getcwd()

ちなみに「getcwd」は「get current working directory」の略ですね。

モジュールをインポートしない場合

あ、もしかしたら万が一でインポートせずとも使えるかも知れませんので、確認してみましょう。

IDLEのShellウィンドウで以下入力してみてください。ちなみに、osモジュールをインポートしてなくても補完は機能しますので、 Ctrl + Space を積極的に使ってみてくださいね。

>>> os.getcwd()

入力して Enter をしてみると…

はいダメです。

Pythonでosモジュールがないのでエラーになった

NameError: name ‘os’ is not defined

「’os’って名前は定義されてないんだけど」って怒られちゃいました。やっぱりインポートしないとダメですね。

osモジュールのインポートしてos.getcwd関数を使う

では、おとなしくosモジュールをインポートしてから、os.getcwd関数を使うこととしましょう。

以下一行ずつShellウィンドウで入力して Enter です。

>>> import os
>>> os.getcwd()

Pythonのos.getcwd()で作業フォルダを取得する

おお、無事にフォルダパスが表示されましたね。

Shellウィンドウでos.getcwd関数を使うと、Pythonがインストールされているフォルダが現在の作業ディレクトリになるようです。

スクリプトファイルで現在の作業ディレクトリを調べる

では、Shellウィンドウではなく、任意の場所に保存されたPythonファイルのスクリプトでos.getcwd関数を実行するとどうなるでしょうか。

現在の作業ディレクトリは、Pythonファイルが保存されている場所になるでしょうか。

では、Ctrl + N で新規ファイルをEditorウィンドウで開いて、ササっと以下プログラムを入力しましょう。

import os
print(os.getcwd())

書いたら、Ctrl + S でデスクトップの「mkdir」というフォルダに「getcwd.py」というファイル名で保存しました。そして F5 キーで実行です。

Pythonのos.getcwdで作業フォルダを取得する

ちゃんと、「getcwd.py」が作業フォルダになっているのが確認できました。

まとめ

Pythonで標準ライブラリのモジュールをインポートして使う方法についてお伝えしました。

今回はosモジュール作業フォルダを知るos.getcwd関数を使いました。

osモジュールには他にも便利な関数がたくさんありますし、標準ライブラリには他にも便利なモジュールが含まれています。Pythonの世界…広いですね。

さて、次回はosモジュールを使って、フォルダを作成する方法についてお伝えしていきます。

どうぞお楽しみに!

VBScriptでWEBスクレイピング!aタグのリンクURLを全部取得する方法

$
0
0

こんにちは!あつもり(@atumori17)です。

VBScriptでIEを操作してWEBスクレイピング!の第5回目で~す。
前回はブラウザの読み込み待ちをしてエラーを回避する方法を紹介しました。

VBScriptでWEBスクレイピング!ブラウザの読み込み待ちをしてエラーを回避する
IEのページ読み込み待ちしてHTMLドキュメントからWEBサイトのタイトル名を取得する方法をご紹介します。面倒なようですがWEBスクレイピングはIEがページ全体を読みむまで待ってあげてから、データを取得するという手順を踏まなければならないからです。

前回はWEBページのタイトル名を取得してテキストファイルに書き出すところまでやりましたが、今回はページ内にあるリンクURLを全て取得してテキストファイルに書き出す方法を紹介します。

イメージとしてはこんな感じです。

aタグのリンクURLを全部取得するスクリプト

テキストエディタ開き下記のコードを入力します。全て入力し終わったら「リンクURL取得.vbs」のファイル名でデスクトップに保存します。

Option Explicit

    Dim objIE
    Dim objLink

    Set objIE = CreateObject("InternetExplorer.Application")
    objIE.Visible = True

    'IEを開く
    objIE.navigate "https://tonari-it.com/"

    'ページが読み込まれるまで待つ
    Do While objIE.Busy = True Or objIE.readyState <> 4
        WScript.Sleep 100
    Loop

    'Aタグを取得してテキストファイルに書き出す
    For each objLink In objIE.document.Links
        OutputText objLink.href
    next

'テキストファイルへ出力
Function OutputText(ByVal strMsg)

    Dim objFSO
    Dim objText

    'ファイルシステムオブジェクト
    Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
    'テキストファイルを開く
    Set objText = objFSO.OpenTextFile("link.txt", 8, true)

    objText.write strMsg
    objText.write vbCrLf

    objText.close

    'オブジェクト変数をクリア
    Set objFSO = Nothing
    Set objText = Nothing

End Function

プログラムコードの解説

全体の流れは以下のようになります。

  1. IEでページを開く
  2. IEの読み込み待ちをする
  3. リンクURLを取得してテキストファイルに書きだす

1~2までは前回ご説明したタイトル名を取得する流れと同じです。今回はページ内にある全てのリンクURLをテキストファイルに書き出します。

 

HTMLのaタグについて

コードの説明に入る前にaタグついて説明しておきたいと思います。まずは下の画像を見てください。

 

赤枠で囲まれた部分がリンクですが、HTMLでページにリンクを置きたいときは次のようにコードを書きます。

<a href="https://tonari-it.com/category/startup-freelance/">起業・フリーランス</a>

aタグで囲まれた文字がリンクです。このリンクをクリックすると別のページにジャンプするというわけですね。

上記のコード、<タグ>要素内容<タグ>を全てひっくるめて要素といいます。この要素という単語は後で出てくるので覚えておきましょう。

aタグとはHTMLのタグの1つで、リンクを表すタグということなんですね。ちなみにaタグのaはAnchor(アンカー)の略です。

aタグでhref属性を指定する

aタグでhref属性を指定するとリンク参照先のURLを指定することができます

href = “URL

ダブルクォーテーションで囲まれているのがリンク参照先のURLになります。今回のプログラムはこのhref属性の値を取得してテキストファイルに書き出していきます。

 

リンクURLを取得する

それではページ全体のリンクURLを取得していきます。

Linksプロパティでページ全体のa要素を取得する

htmlドキュメント.Links

とすることでページ全体のa要素を取得することができます。この取得したa要素をコレクションといいます。

コレクションはページ内のa要素がまとまって入っているため、1つ1つの要素にバラしてあげないと使えません。

For each文でコレクションから1つ1つの要素を抜き出す

ではどうしたらコレクション内の各要素をバラすことができるんでしょう?それにはFor eachステートメントを使います。下記のようにすることでコレクションの中の要素の数だけループさせることができます。

For each オブジェクト変数 In コレクション
処理
next

 

今回のプログラムコードでは、ページ全体のa要素の数だけループしていることになります。上のコードで17~20行目の部分です。

For each objLink In objIE.document.Links    
  OutputText objLink.href
next

 

そして1つずつ取り出したa要素からリンク参照先のURLを取得します。

オブジェクト変数.href

オブジェクト変数に入っているa要素にhref属性を指定することでリンク参照先のURLが取得できます。

実際には「https://tonari-it.com/category/startup-freelance/」のようなURLの文字列になります。

プログラムコードの解説は以上です。

アプリケーションを実行してみる

では実際に起動してみます。デスクトップにある「リンクURL取得.vbs」をダブルクリックして起動します。はたして無事にリンクURLを書き出すことができるでしょうか?ハラハラしますね~。

デスクトップに「link.txt」ができました。

「link.txt」を開くとページ内にあるリンクURLが書かれています。無事成功しましたっ!

まとめ

いかかでしたか?今回の内容をまとめると以下のようになります。

  • aタグとはHTMLのタグの1つでリンクを表すタグです
  • ページ全体のa要素を取得するにはLinksプロパティを使う
  • For each文でコレクションから1つ1つの要素を抜き出す

今回は以上です。それではお疲れさまでした~。

連載目次:VBScriptでお手軽WEBスクレイピング

Windowsを操作できるプログラミング言語「VBScript」を使えば、InternetExplorerを操作してWEBスクレイピングが可能です。 これで日々の情報収集はダブルクリック一発で完了させましょう!
  1. VBScriptでInternet Explorerを使って複数WEBサイトをダブルクリック一発で開く方法
  2. VBScriptでWEBスクレイピング!ファイルシステムオブジェクトでテキストに書き出す
  3. VBScriptでWEBスクレイピング!HTMLドキュメントとタイトルを取得する方法
  4. VBScriptでWEBスクレイピング!ブラウザの読み込み待ちをしてエラーを回避する
  5. VBScriptでWEBスクレイピング!aタグのリンクURLを全部取得する方法

Pythonでosモジュールのmkdir関数を使ってフォルダを作成する超簡単なプログラム

$
0
0

みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

はい、初心者向けにWindowsのフォルダ操作をするツールを作りながらPythonの基本中の基本を学んでおります。

前回は、OSとやり取りするためのosモジュールをインポートする方法と、現在の作業フォルダのパスを調べる方法についてお伝えしました。

Pythonで標準ライブラリのモジュールをインポートして使ってみよう
一般ビジネスマンの初心者向けにPythonで簡単かつお仕事に役立つツールを作る方法を解説。今回は、osモジュールとgetcwd関数で標準ライブラリのモジュールのインポートと使い方をお伝えします。

さて、例えば、複数のフォルダを作るとき、どうしていますか?

作成する分だけ、右クリックしてメニューから「新規作成」→「フォルダ」…なんてしてませんよね?

ショートカットキー Ctrl + Shift + N でも名前を入力しないとですから、複数フォルダの場合はちょっと面倒です。

ということで、Pythonで複数のフォルダを一気に作るプログラムを目指していきます。

今回は手始めに、Pythonでosモジュールのmkdir関数を使ってフォルダを作成する超簡単なプログラムについてお伝えします。

では、行ってみましょう!

前回のおさらい

おさらいって言っても、現在の作業フォルダのパスを表示するという超単純プログラムでしたけどね。

こちらです。

import os
print(os.getcwd())

os.getcwd関数を使うには、当然ながらosモジュールが必要。ということで、冒頭のimport文でosモジュールをインポートしています。

os.mkdir関数でフォルダを作成する

Pythonでフォルダを作成するには、os.mkdir関数を使います。

os.mkdir(path)

「Make Directory」で「mkdir」ですね。

pathには作成するフォルダのパスを絶対パスか相対パスかのどちらかを文字列で指定します。

しかし…、ディレクトリと言ったり、フォルダと言ったり…統一して欲しいものです。

相対パスを指定してフォルダを作成する

相対パスはカレントディレクトリ、つまり現在の作業フォルダから相対的に指定するパスです。

現在のフォルダは「.」、一つ上の親フォルダは「..」で表します。

現在の作業フォルダに例えば「test」というフォルダを作成するのであれば、「.\test」と指定するのが丁寧な書き方であります。

import os
os.mkdir('.\\test')

「\\」は「\」のエスケープシーケンスです。

エスケープシーケンスとは、特殊な文字を記述するための方法です。

Pythonでは、「\」は特別な役割を果たす記号ですので、「\」を表現するにはエスケープシーケンスを使って「\\」と二つ並べることで表現をする必要があります。

しかし、せっかくなのですが、現在の作業フォルダであれば「.\」は省略することができちゃったりします。

ですから、以下のプログラムでOKです。

import os
os.mkdir('test')

このプログラムを保存して実行すると、pyファイルを保存したフォルダに「test」フォルダが作成されます。

Pythonのmkdir関数でフォルダを作成

絶対パスを指定してフォルダを作成する

絶対パスはルートフォルダから対象のフォルダまで全てを指定します。

こちらも文字列でパスを指定しますので、「\」はエスケープシーケンスで「\」としなくてはいけませんね。

例えば、「C:\Users\ntaka\Dropbox\desktop\mkdir」の配下に「test」フォルダを作りたいのだれば、以下のようにしますね。

import os
os.mkdir('C:\\Users\\ntaka\\Dropbox\\desktop\\mkdir\\test')

これで、先ほどと同様に実行すると、ちゃんと狙ったフォルダに「test」フォルダが作成されます。

ですが、絶対パス…面倒っすね。

複数のフォルダを作成する

では、相対パスの指定によるmkdir関数を使って、サクっと複数のフォルダを作成してみましょう。

import os
os.mkdir('10_アフリカ')
os.mkdir('20_アメリカ')
os.mkdir('30_アジア')
os.mkdir('40_ヨーロッパ')
os.mkdir('50_オセアニア')

もう、説明の必要はないくらい簡単ですね。

これを実行すると、以下のようにちゃんと各フォルダが作成されます。その実行時間は一瞬です。

Pythonのmkdir関数で複数フォルダを作成

まとめ

以上、Pythonでos.mkdir関数を使って複数のフォルダを作成する簡単プログラムを作成しました。

Pythonではフォルダを作るのもすっごく簡単ですね。

とはいえ、今回の方法ですと、若干強引な書き方な感じもしますね。もうちょっとスマートに書く方法を模索したいものです。

ということで、次回は繰り返し処理をするforループの使い方についてお伝えしたいと思います。

どうぞお楽しみに!

連載目次:【初心者向けPython】基本の基本を学びながらフォルダ操作

非エンジニアの一般ビジネスマンの初心者向けにPythonでWindowsのファイルやフォルダを操作する簡単便利ツールの作り方を解説しながら、Pythonプログラミングの基本中の基本を学んでいくシリーズです。
  1. Pythonで標準ライブラリのモジュールをインポートして使ってみよう
  2. Pythonでosモジュールのmkdir関数を使ってフォルダを作成する超簡単なプログラム

Pythonプログラミングの基本中の基本!forループによる繰り返しの作り方

$
0
0
loop

photo credit: melystu Mobility Loop via photopin (license)

みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

一般ビジネスマンの初心者向けフォルダを操作するツールを作りながらPythonの基本を学ぶシリーズです。

前回の記事はコチラ。

Pythonでosモジュールのmkdir関数を使ってフォルダを作成する超簡単なプログラム
初心者向けPythonプログラミングでWindowsのフォルダ操作をする方法についてお伝えしています。今回はPythonでosモジュールのmkdir関数を使ってフォルダを作成する超簡単なプログラムです。

Pythonのos.mkdir関数を使ってフォルダを作成する方法についてお伝えします。

一応、5つのフォルダを作成したのですが、これが10個、100個、…とその数が増えていったときには、何十行も書くのは面倒です。

そんな時に力を発揮するのが繰り返し処理です。

今回は、Pythonプログラミングにおける繰り返しの基本中の基本、forループ文の作り方についてお伝えします。

前回のおさらい

では、まず前回のおさらいから。

作成したプログラムがこちらです

import os
os.mkdir('10_アフリカ')
os.mkdir('20_アメリカ')
os.mkdir('30_アジア')
os.mkdir('40_ヨーロッパ')
os.mkdir('50_オセアニア')

os.mkdir関数を使って、フォルダを5つ作っていますね。

ですが、スマートじゃないですね。

いつもこの5つが作りたいならいいですが、別のやつが増えたり、100個作りたかったりしたら、これでは手に負えないですね。

少しずつパワーアップをしていきますよ!

forループとrange関数による繰り返し

まず、数をたくさん作ること、そうですね…奮発して100個作ることを目指していきましょう。

それでいうと、プログラミングが大得意な繰り返し処理です。

Pythonで一定の回数だけ繰り返し処理を行うにはforループとrange関数を使います。

書き方はこうです。

for 変数 in range([開始値], 終了値[, ステップ]):
  # 処理

forループの仕組みについて順を追って説明しましょう。

  1. まず、forの後の変数に、range関数の引数として指定した開始値が格納されます。開始値は省略することができ、その場合は0となります。
  2. 変数の値が終了値に達するまで繰り返し処理がなされます。
  3. 1回の処理で変数の値はステップ分だけ増えます。ステップは省略することができ、その場合は1です。
  4. 繰り返しのたびに、インデント(字下げ)されたブロックが実行されます。

インデントがブロックを表すなんて、Python…ほんと素敵です。

forループの最も簡単な例

では、簡単な例を見てみましょう。

以下コードを実行してみてください。なお、インデントは Tab キーで入れることができますよ。

for i in range(5):
    print(i)

Shellウィンドウにこのように出力されると思います。

Pythonでforループを使った例

range関数の開始値は省略しているので0、終了値は5、ステップは省略しているので1です。

ここで注意すべきは、終了値は5なのですが、出力は4までですね。終了値にちょうど達した時点では処理を行わずにループを終了しますので、注意くださいね。

forループでフォルダをいっぱい作ってみよう

ひとまず、フォルダ名はちょっと横に置いておけるのであれば、forループでフォルダを大量に作ることができますね。

例えばこんなプログラムです。(100個と言ったのですが、ちょっと試しにということで、まずはヒヨって5個からです…汗)

import os
for i in range(5):
    os.mkdir(i)

はい、実行!

Pythonでpath should be stringのTypeError

…「TypeError: mkdir: path should be string, bytes or os.PathLike, not int」

パスは文字列じゃないとだめだよ

ということが言いたいのでしょう。

str関数で数値を文字列に変換する

変数iの値は数値です。そして、mkdir関数の引数であるパスは文字列でないといけないということですね。

例えば、以下のコードをShellウィンドウで実行してみてください。

>>> print('数値は' + 5)

「TypeError: must be str, not int」と怒られちゃうと思います。

+演算子は文字列連結演算子です。ですが、片っぽが数値なのでダメよと怒られちゃいます。

Pythonはデータ型しっかりしてます。

そこで、数値型の値を文字列型に変換するためにstr関数というものがあります。

str(数値)

以下のコードをShellウィンドウで実行してみてください。

>>> print('数値は' + str(3))

こちらなら「数値は3」と出力がされます。

指定した数だけフォルダを作る

では、このstr関数を使って、フォルダ作成プログラムを変更してみましょう。

こちらですね。

import os
for i in range(5):
    os.mkdir(str(i))

これでOK。では実行してみましょう。

Pythonで指定の数だけフォルダを作る

ばっちり、作業フォルダに5つフォルダができていますね。

あ、もちろんrange関数の終了値を100にすれば、100個のフォルダ作れますよ。

ただ…フォルダ名が。ま、これは次回のお楽しみということで。

まとめ

Pythonプログラミングの基本として繰り返しを行うforループの使い方についてお伝えしました。

forループの使い方に関しては他のプログラミングと比較すると

  • forブロックをインデントで表現する
  • range関数を使う

といったところがPythonの特徴ですね。

また、数値を文字列に変換するstr関数も大事そうです。

次回、リストを使ってフォルダ名も指定できるようにしていきます。

どうぞお楽しみに!

連載目次:【初心者向けPython】基本の基本を学びながらフォルダ操作

非エンジニアの一般ビジネスマンの初心者向けにPythonでWindowsのファイルやフォルダを操作する簡単便利ツールの作り方を解説しながら、Pythonプログラミングの基本中の基本を学んでいくシリーズです。
  1. Pythonで標準ライブラリのモジュールをインポートして使ってみよう
  2. Pythonでosモジュールのmkdir関数を使ってフォルダを作成する超簡単なプログラム

Pythonでデータをまとめて取り扱う基本中の基本!リストの使い方とforループ

$
0
0
list

photo credit: morten f Ieatheartattacks set list via photopin (license)

みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

初心者向けにフォルダ操作を題材としてPythonプログラミングの基本中の基本についてお伝えしています。

前回の記事はコチラ。

Pythonプログラミングの基本中の基本!forループによる繰り返しの作り方
一般ビジネスマンの初心者向けフォルダを操作するツールを作りながらPythonの基本を学ぶシリーズ。今回は、Pythonプログラミングの基本、forループとrange関数による繰り返し処理の作り方です。

forループによる繰り返し処理の書き方についてお伝えしました。

さて、たくさんのデータを取り扱いときに、それぞれに変数を用意するのは大変です。

そこで、Pythonではリストというデータ構造が用意されていて、データをまとめて取り扱うプログラムを作るのに役立ちます。

ということで、今回はPythonでデータをまとめて取り扱うリストについてその基本とforループにより繰り返しについてお伝えしていきます。

では、行ってみましょう!

前回のおさらい

では、まずは前回のおさらいから。

作成したコードはこちらです。

import os
for i in range(5):
    os.mkdir(str(i))

forループとrange関数で作業フォルダに5つのフォルダを作成するプログラムです。

ですが、str関数で頑張って変数iを文字列に変換させてはいるものの、このやり方だと単なる数値名がフォルダ名になっちゃいますよね。

とはいえ、前々回作成以下コードのように、何回もmkdir関数を列挙するのもスマートではありません。

import os
os.mkdir('10_アフリカ')
os.mkdir('20_アメリカ')
os.mkdir('30_アジア')
os.mkdir('40_ヨーロッパ')
os.mkdir('50_オセアニア')

ということで、今回はこの悩みを解決していきます。

リストとは

リストの作り方

リストというのは、データをまとめて取り扱うためのデータ構造で以下のように、角括弧の中に要素をカンマ区切りで記述します。

[要素1, 要素2,…]

要素としては数値、文字列はもちろんリスト自体を指定することもできますし、それらを混在させることも可能です。

以下のようにリストを変数に代入することもできますし

変数 = [要素1, 要素2,…]

以下のようにすれば空のリストを表します。

[]

他のプログラミング言語でいう配列にとっても似ていますね。

例えば、全世界の支店用のフォルダ名をまとめて取り扱うのであれば、以下のようなリストを用意すればよさそうです。

IDLEで以下のようにリストを変数listに代入して、表示してみてください。

>>>areas = ['10_アフリカ', '20_アメリカ', '30_アジア', '40_ヨーロッパ', '50_オセアニア']
>>>areas

Pythonでリストを出力

変数listにはリストがまるっと格納されていますね。

リストから要素を取り出す

それで、この要素を取り出すには、インデックスを使います。最初に定義した要素はインデックス「0」、次の要素にはインデックス「1」、…というように順番にインデックスが振られています。

このインデックスを使って

リスト[インデックス]

とすることで、指定したインデックスに該当する要素を取り出すことができます。

ですから、先ほどのlistで「30_アジア」を取り出したければ、3番目はインデックス「2」ですから、以下のようにすれば良いですね。

>>> areas[2]

Pythonでリストの要素をインデックスで取り出す

ばっちり、リストから目的の要素を取り出せました。

forループでリストから順番に要素を取り出す

これでリストは作れました。

それで、このリストから要素を一つずつ取り出すことができれば、それぞれの要素をフォルダ名としてフォルダを作成することができそうです。

Pythonでは、前回お世話になったforループを使えば、簡単にリストの要素一つずつについて繰り返し処理をすることができます。

このように書きます。

for 変数 in リスト:
  # 処理

おお、簡単そうですね!

例えば、以下のようなコードを実行してみましょうか。

areas = ['10_アフリカ', '20_アメリカ', '30_アジア', '40_ヨーロッパ', '50_オセアニア']
for area in areas:
    print(area)

実行結果はコチラ。

Pythonでリストの要素をforループで一つずつ出力

リストを使ってフォルダをまとめて作成する

ここまでくればもう目標は間近ですね。

フォルダ名をリストにしておいて、それによりまとめてフォルダを作成するプログラムを作ります。

forループ内の処理をprint関数からos.mkdir関数に変更すればよさそうです。

import os
areas = ['10_アフリカ', '20_アメリカ', '30_アジア', '40_ヨーロッパ', '50_オセアニア']
for area in areas:
    os.mkdir(area)

はい、では実行してみましょう。

Pythonでリストを使って複数のフォルダを作成

はい、各エリアのフォルダがバッチリ作成できました!

まとめ

Pythonでデータをまとめて扱うリストの基本の使い方、forループでのリスト要素についての繰り返し処理についてお伝えしました。

Python、ひたすらスマートに書けますね。

これで、リストの内容さえ変えていけば、好みのフォルダをたくさん作ることができますね。

さて、次回ですが、うっかり同名のフォルダが存在しちゃっているかどうかを判定する方法についてお伝えします。

Pythonで指定したフォルダが存在しているかどうかを調べるos.path.existsの使い方
初心者向けにフォルダ操作をする便利ツールを作りながらPythonプログラミングを学んでおります。今回はPythonで指定したフォルダが存在しているかどうかをos.path.exists関数で調べる方法です。

どうぞお楽しみに!

連載目次:【初心者向けPython】基本の基本を学びながらフォルダ操作

非エンジニアの一般ビジネスマンの初心者向けにPythonでWindowsのファイルやフォルダを操作する簡単便利ツールの作り方を解説しながら、Pythonプログラミングの基本中の基本を学んでいくシリーズです。
  1. Pythonで標準ライブラリのモジュールをインポートして使ってみよう
  2. Pythonでosモジュールのmkdir関数を使ってフォルダを作成する超簡単なプログラム
  3. Pythonプログラミングの基本中の基本!forループによる繰り返しの作り方
  4. Pythonでデータをまとめて取り扱う基本中の基本!リストの使い方とforループ
  5. Pythonで指定したフォルダが存在しているかどうかを調べるos.path.existsの使い方

Pythonで指定したフォルダが存在しているかどうかを調べるos.path.existsの使い方

$
0
0
folder-exists

photo credit: manoftaste.de Bureaucracy / Bürokratie III via photopin (license)

みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

初心者向けにフォルダ操作をする便利ツールを作りながらPythonプログラミングを学ぶシリーズをお送りしています。

前回の記事はこちら。

Pythonでデータをまとめて取り扱う基本中の基本!リストの使い方とforループ
初心者向けにフォルダ操作を題材としてPythonプログラミングの基本中の基本についてお伝えしています。今回はPythonでデータをまとめて取り扱うリストについてその基本とforループにより繰り返しついてです。

リストを使ってデータをまとめて取り扱う方法とリストに対するforループによる繰り返し処理の作り方についてお伝えしました。

さて、これまでフォルダを作成する方法を少しずつパワーアップしてきているわけですが、作ろうとしているフォルダが既に存在している場合、Pythonではエラーをはいて終了してしまいます。

そういうことも実務ではありますもんね。

ですので、それを避ける方法を考えていかないといけません。

その手始めとして、今回はPythonで指定したフォルダが存在しているかどうかを調べる方法をお伝えします。

os.path.existsという関数を使えば一発です。

では、行ってみましょう!

前回のおさらいと課題

では、まずは前回のおさらいからです。

前回作成したプログラムはこちらです。

import os
areas = ['10_アフリカ', '20_アメリカ', '30_アジア', '40_ヨーロッパ', '50_オセアニア']
for area in areas:
    os.mkdir(area)

作りたい複数のフォルダ名をリストとして与えて、それに対してforループを回して、作業フォルダにフォルダを作成するという内容ですね。

非常にシンプルながらも、なかなか使いどころがありそうですが、一点問題があります。

作ろうとしているフォルダが既に存在している場合、エラーになってしまうのです。

やってみましょうか。こんなエラーが出ます。

Pythonでフォルダを作成しようとして出たFileExistsError

FileExistsError: [WinError 183] 既に存在するファイルを作成することはできません。: ’10_アフリカ’

とってもわかりやすくてありがたいエラーメッセージです。

これをなんとか回避するのが当面の目標です。

フォルダの存在有無を確認する方法

Pythonはこの悩みも簡単に解決してくれます。

これまで愛用してきた標準ライブラリのosモジュールですが、その中にファイル名やパスを操作するスペシャルなたくさんの関数で構成されているos.pathモジュールが含まれています。

そのos.pathモジュール内のexists関数を使うと、指定のフォルダやファイルが存在するかどうかを確認することができます。

指定のフォルダの存在有無を確認できれば、それを条件にして

  • 存在しているときはフォルダを作らない
  • 存在していないときはフォルダを作る

といった分岐処理を作ってあげれば、今回の課題をクリアできるようになります。

os.path.exists関数の使い方

では、os.path.exists関数の使い方をみてみましょう。

os.path.exists(path)

pathには相対パスか絶対パスを指定できますが、作業フォルダ内であればフォルダ名のみでOKです。

では、試しに使ってみましょう。

まず、os.pathモジュールをインポートする必要がありますが、os.pathモジュールはosモジュールに含まれているので、osモジュールをインポートしていればそれでOKです。

それで、作業フォルダに以下のフォルダが作られているとします。

Pythonプログラム実行前の作業フォルダ

この状態で、以下のコードを実行してみようというわけです。

import os
print(os.path.exists('10_アフリカ'))
print(os.path.exists('99_南極'))

実行するとShellウィンドウに以下のように出力されました。

Pythonのos.path.exists関数の結果

「10_アフリカ」は既にフォルダが存在しています。それに対してos.path.exists(’10_アフリカ’)の出力は「True」です。

「99_南極」はフォルダが存在していません。そして、os.path.exists(’99_南極’)の出力は「Flase」です。

つまり、exists関数は指定したフォルダやファイルが存在していればTrue、存在していなければFalseという値を返します。

ブール型とは

os.path.exists関数の結果として出力されたTrue、Falseはブール型とよばれるデータです。

ブール型はTrue、Falseの2種類の値しかなく、それぞれ以下のような意味をもっています。

  • True:成立している、ある、Yesなど
  • False:成立していない、ない、Noなど

ある特定の条件の結果として、それがTrueなのかFalseなのかによって、処理の分岐を行ったり、繰り返しを続行するかどうかを決めたり、といった使い方をします。

実際に、どのようにブール型を活用するのか…そのあたりは次回のお楽しみにですね。

まとめ

以上、Pythonで指定したフォルダの有無を調べるos.path.exists関数の使い方についてお伝えしました。

また、ブール型とは何かということについても簡単に触れました。

次回そのブール型を使って、処理を分岐するif文の使い方についてお伝えしますね。

どうぞお楽しみに!

連載目次:【初心者向けPython】基本の基本を学びながらフォルダ操作

非エンジニアの一般ビジネスマンの初心者向けにPythonでWindowsのファイルやフォルダを操作する簡単便利ツールの作り方を解説しながら、Pythonプログラミングの基本中の基本を学んでいくシリーズです。
  1. Pythonで標準ライブラリのモジュールをインポートして使ってみよう
  2. Pythonでosモジュールのmkdir関数を使ってフォルダを作成する超簡単なプログラム
  3. Pythonプログラミングの基本中の基本!forループによる繰り返しの作り方
  4. Pythonでデータをまとめて取り扱う基本中の基本!リストの使い方とforループ
  5. Pythonで指定したフォルダが存在しているかどうかを調べるos.path.existsの使い方

Pythonで条件分岐をする基本中の基本!if~else文の作り方

$
0
0
branch

photo credit: Antonio Martinetti Scambio via photopin (license)

みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

初心者向けにフォルダ作成ツールを題材としてPythonプログラミングの基本を学ぶシリーズです。

前回の記事はこちらです。

Pythonで指定したフォルダが存在しているかどうかを調べるos.path.existsの使い方
初心者向けにフォルダ操作をする便利ツールを作りながらPythonプログラミングを学んでおります。今回はPythonで指定したフォルダが存在しているかどうかをos.path.exists関数で調べる方法です。

フォルダやファイルの有無を調べるos.path.exists関数の使い方についてお伝えしました。

そしてそれを活用して

  • フォルダが存在すればフォルダを作成しない
  • フォルダが存在しなければフォルダを作成する

という、いわゆる条件分岐の処理を作っていきたいと思っているところです。

ということで、今回はPythonで条件分岐をする基本中の基本、if~else文の作り方をお送りします。

行ってみましょう!

これまでのおさらい

えと、今何をしようとしているかといいますと、フォルダ名をリストで指定しておいて、それらのフォルダをまとめてドバっと作業フォルダに作成するというPythonプログラムを作りたいということになります。

それで、いったん以下コードでその目的は達成できるのですが…

import os
areas = ['10_アフリカ', '20_アメリカ', '30_アジア', '40_ヨーロッパ', '50_オセアニア']
for area in areas:
    os.mkdir(area)

リストに指定しているフォルダ名と同名のフォルダが作業フォルダに存在していると、エラーになってしまうんですね。

それを防ごうというのが、目下の課題になっていまして、そのヒントとしてos.pathモジュールのexists関数を使えば、該当のフォルダが作業フォルダに存在しているかどうかはわかるぞ!というのが前回お伝えした内容です。

os.path.exists(path)

この関数は作りたいパス(今回でいうと作業フォルダなのでフォルダ名のみでOK)を指定すれば

  • フォルダが存在すればTrue
  • フォルダがぞ存在しなければFalse

というようにブール型の値を返します。このTrueかFalseかという情報を使って、エラーを回避していこうというのが今回のミッションになります。

if~else文で条件によって処理を分岐する

os.path.exists関数に作りたいフォルダ名を渡して、それが

  • 存在している(True)のであればフォルダは作らない
  • 存在していない(False)のであればフォルダを作る

というように、その存在有無によって処理を分岐するようにすればよいわけです。

Pythonで「もし~ならば…さもなくばxxx」というような条件による分岐処理を実現するには、if~else文を使います。

書式はこちらです!

if 条件式:
  # 条件式がTrueのときの処理
else:
  # 条件式がFalseのときの処理

条件式としてTrueまたはFalseを返すものを指定します。

その結果がTrueであれば、「if 条件式:」の次の行以降にインデントされて記述されている処理(ifブロック)を実行します。条件式の結果がFalseであれば、「else:」の次の以降にインデントされて記述されている処理(elseブロック)を実行します。

相変わらず、Pythonの記述は美しいです。

if~else文による処理の分岐の例

では、試しにif~else文を使ってみましょう。

以下コードを実行してみましょう。

import os
area = '10_アフリカ'
if os.path.exists(area):
    print('フォルダ ' + area + ' は既に存在しています')
else:
    print('フォルダ ' + area + ' はまだ存在していません')

「10_アフリカ」というフォルダが作業フォルダに存在しているのであれば、Shellウィンドウには以下のように出力されるはずです。

Pythonでif文を使ってメッセージを表示

リストについてフォルダが存在していないフォルダだけ作成する

では、if~else文を活用して、リストで指定したフォルダ名のうち、作業フォルダにないフォルダだけ作成するプログラムを作ってみます。

こちらです。

import os
areas = ['10_アフリカ', '20_アメリカ', '30_アジア', '40_ヨーロッパ', '50_オセアニア']
for area in areas:
    if os.path.exists(area):
        print('フォルダ ' + area + ' は既に存在しています')
    else:
        os.mkdir(area)

if文を使ったフォルダ作成プログラムの実行結果

例えば、作業フォルダが以下の状態だったとします。つまり、「30_アジア」だけ存在していますね。

初期の作業フォルダ

実行してみますと、作業フォルダは以下のように存在しないフォルダは作成されます。

Pythonによるフォルダ作成実施後の作業フォルダ

そして、Shellウィンドウには、既に存在していたフォルダについてメッセージが表示されますね。

Pythonでフォルダが存在していたときに表示したメッセージ

まとめ

今回は、Pythonで条件分岐処理をする基本としてif~else文についてお伝えしました。

これにて、フォルダが既に存在いている場合でも、エラーとならずにフォルダを作成するプログラムを実行することができるようになりました。

次回は、フォルダ名をリストではなくて、テキストファイルから与えることについて考えてみたいと思います。

Pythonでテキストファイルを開いてデータを読み込む基本中の基本
初心者向けにフォルダを作成するツールを作りながらPythonプログラミングの基本を学んでいます。今回はPythonでテキストファイルを開いてデータを読み込む方法です。全体を文字列で&一行ずつリストで読み込みます。

どうぞお楽しみに!

連載目次:【初心者向けPython】基本の基本を学びながらフォルダ操作

非エンジニアの一般ビジネスマンの初心者向けにPythonでWindowsのファイルやフォルダを操作する簡単便利ツールの作り方を解説しながら、Pythonプログラミングの基本中の基本を学んでいくシリーズです。
  1. Pythonで標準ライブラリのモジュールをインポートして使ってみよう
  2. Pythonでosモジュールのmkdir関数を使ってフォルダを作成する超簡単なプログラム
  3. Pythonプログラミングの基本中の基本!forループによる繰り返しの作り方
  4. Pythonでデータをまとめて取り扱う基本中の基本!リストの使い方とforループ
  5. Pythonで指定したフォルダが存在しているかどうかを調べるos.path.existsの使い方
  6. Pythonで条件分岐をする基本中の基本!if~else文の作り方
  7. Pythonでテキストファイルを開いてデータを読み込む基本中の基本
  8. Pythonで文字列を区切り文字や改行で分割してリスト化するsplitメソッドの使い方

エクセルVBAで画像ファイルをシートに追加するAddPictureメソッドの使い方

$
0
0

excel,vba,shapes,addpicture,object,eyecatch

皆様こんにちは、ノグチです。

エクセルVBAで画像を操作しちゃおう!ということで、前回記事ではその第一歩として、Shapeオブジェクトとは?とShapeオブジェクトで操作できるオートシェイプやグラフなどをご紹介しました。

エクセルVBAで画像やオートシェイプなどを操作するShapeオブジェクトのはじめの一歩
エクセルVBAで、オートシェイプや画像などを操作するための第一歩として、Shapeオブジェクトのご紹介をしています。Shapeオブジェクトを使えば、画像をシートに追加したり、移動、コピー、削除などの操作ができるようになりますよ。

今回は、ShapesコレクションのAddPictureメソッドを使って、画像ファイルをエクセルに張り付ける方法をご紹介します!

Shapes コレクションとは

「Shapesコレクション?『s』がついているけど、shapeオブジェクトと何が違うの?」と思われた方、鋭い。

Shapesコレクションはシート上にあるShapeオブジェクト全てを指すものです。

それに対して、Shapeオブジェクトはシート上にあるオブジェクトのひとつ、単体を指すものです。

sがあるかないかの違いなのですが、役割や使えるメソッドが違いますので、注意が必要です。

シート上のShapesコレクションは、WorksheetオブジェクトのShapesプロパティで取得することができます。

Worksheetオブジェクト.Shapesプロパティ

AddPictureメソッドとは

さて、画像ファイルをエクセルに追加するには、ShapesオブジェクトのAddPictureメソッドを使います。

このメソッドは、画像をエクセルに追加するためのメソッドです。

AddPictureメソッドの記述方法はこちら。

Worksheetオブジェクト.Shapesコレクション.AddPictureメソッド

そしてこのメソッドはパラメータが7つあり、すべて指定する必要があります

それぞれ指定する内容がこちら。

パラメータ 指定する内容
Filename エクセルに追加したい画像ファイルを指定します。
LinkToFile True又はFalseで指定します。追加した画像ファイルにリンクを張ってエクセルを起動するたびに画像ファイルを読み込むか(False)、指定した画像をコピーしてエクセルに張り付けるか(True)を指定します。
SaveWithDocument True又はFalseで指定します。画像ファイルをエクセルと一緒に保存するか(True)、画像ファイルへのリンク情報だけを保存するかを指定します。
Left 画像ファイルの左上にあたる位置を、ポイントで指定します。
Top 画像ファイルの上にあたる位置を、ポイントで指定します。
Width 画像ファイルの幅を指定します。
Height 画像ファイルの高さを指定します。

これらパラメータをすべて指定するには、こういう感じで記述します。

Worksheets(1).Shapes.AddPicture _
Filename:="C:\Users\user\Desktop\画像.png", _
      LinkToFile:=True, _
          SaveWithDocument:=True, _
          Left:=330, _
          Top:=40, _
          Width:=100, _
          Height:=80

AddPictureメソッドで画像を表示する

では、実際にこのメソッドを使って、エクセルに画像を表示してみましょう。エクセル,vba,shapes,請求書,画像

請求書の右上にある日付の下に、 会社ロゴを張り付けてみます。

会社ロゴとして使う画像ファイルは、請求書と同じフォルダに格納しています。

エクセル,vba,shapes,請求書,画像,ロゴ

請求書にロゴを表示するためのコードがこちら。

Sub 画像追加()
Dim shpPic As Shape
Dim strPath As String
    strPath = "C:\Users\user\Desktop\請求書\ロゴ.png"
    Worksheets(1).Shapes.AddPicture _
                Filename:=strPath, _
                LinkToFile:=False, _
                SaveWithDocument:=True, _
                Left:=330, _
                Top:=40, _
                Width:=100, _
                Height:=80
End Sub

このコードを実行してみると…

この通り、画像ファイルが読み込まれて請求書にロゴが表示されました!

エクセル,vba,shapes,請求書,画像,ロゴ,貼付

 

まとめ

今回は、AddPictureメソッドで画像ファイルをエクセル上に張り付ける方法をご紹介しました。

手動の場合、画像の追加は簡単なんですが、サイズや場所の調整が結構面倒なんですよね。

1回こっきりのエクセルツールならまだしも、何度も使うような帳票などで毎回画像の調整なんてやっていられません。

そんな時には今回ご紹介したAddメソッドを使って、マクロに任せてしまいましょう!

それでは、最後までお読みいただきありがとうございました!

連載目次:エクセルVBAで図形を操作するShapeオブジェクトの使い方

画像、オートシェイプ、グラフ、テキストボックス、ワードアート、ボタン…エクセルでは様々なものをシートに配置できますが、これらのアイテムは全てShapeオブジェクトです。これら、Shapeオブジェクトの挿入や配置など、自在に操作する方法をお伝えしていきます。
  1. エクセルVBAで画像やオートシェイプなどを操作するShapeオブジェクトのはじめの一歩
  2. エクセルVBAで画像ファイルをシートに追加するAddPictureメソッドの使い方
Viewing all 2105 articles
Browse latest View live