赤兎馬おじさんの足跡~経験値のお裾分け~

赤兎馬おじさんの足跡 ~経験値のお裾分け~

オヤジの嗜み・愉しみ・ぬか喜びを日々発信していく、ややゆるいブログ。     今日も「おやじライフ」を満喫中。

PythonでExcelを読み込みするだけ【コピペOK】業務効率UP術

 

PythonでExcelを読み込みするだけで業務効率UPできるアイデアはある?
プログラミング初心者でも自在に編集できるカンタンな方法は?
GUIで見やすく、コピペで使えるPythonのサンプルコードとか落ちてない?

 

こんな疑問にお答えします。

 

当ブログにお立ち寄り頂きまして、ありがとうございます!m(_ _)m

こう見えて実は、飽き性で非エンジニアのくせしてPython学習をはじめて5カ月目に突入したことに気付いた赤兎馬おじさん(@sekitoba1007)です。

 

無料で使えるPythonはプログラミング初心者にも比較的わかりやすく、AIだけでなく幅広く利用できるので業務効率アップにも便利で人気がありますよね!

 

パソコンを日頃から使っている人は、何気なく繰り返している機械的な作業も多いはず。

 

ファイルやフォルダをあちこち探したりいちいちクリックして起動させたりする作業は、あまり効率的とは言えません。

 

いろんなことができるプログラミング言語であるPythonなら、Excelを読み込みリンクを辿ってサイトを開いたり、よく使うアプリを起動したりすることもできます。

 

そこで思いついたのが「使用する頻度の高いアプリやサイトを、Excelで編集するだけで使えるリンクの一覧」を作るアイデア。

 

Excel編集するだけだから・・・
■Pythonコードを編集する必要がないから、エンジニアに依存しない
■プログラミングのスキルがない人たちでも簡単に使える
■気付いたときに、いつでもサッと追加・削除など編集しやすい

 

今回は、「パスを編集するだけで誰でもスグに使えるサンプルコード」も用意しておきましたので、ぜひ感謝して試してみてください。

 

 

目次

 

 

 

【コピペOK】PythonでExcelを読み込みするだけのサンプルコード

 

 

「PySimpleGUI」を使ったPythonコードは、以下のとおりです。



import PySimpleGUI as sg
import pandas as pd
import subprocess
import os
import webbrowser
import threading

# Excelファイルを読み込む
excel_file_path = r"program_list.xlsx" # ここにパスを記載
df = pd.read_excel(excel_file_path)

# "TAB名称"、"PG名称"、"PGリンク"の列の値を取得
tab_names = df["TAB名称"].unique()  # 重複を排除したTAB名称のリスト
pg_names = df["PG名称"].tolist()  # PG名称のリスト
pg_links = df["PGリンク"].tolist()  # PGリンクのリスト

# タブレイアウトの作成
tab_layouts = []
for tab_name in tab_names:
    # 選択されたTABに応じて対応するPG名称とPGリンクを取得
    selected_pg_names = [pg_name for pg_name, tab in zip(pg_names, df["TAB名称"]) if tab == tab_name]
    selected_pg_links = [pg_link for pg_link, tab in zip(pg_links, df["TAB名称"]) if tab == tab_name]
    # タブのレイアウト
    tab_rows = []
    for pg_name, pg_link in zip(selected_pg_names, selected_pg_links):
        # 「実行」ボタンのクリック時のコールバック関数
        def run_program(pg_link):
            subprocess.run(pg_link, shell=True)  # PGリンクを実行する

        # PG名称と「実行」ボタンを含むレイアウト
        row = [sg.Button("実行", key=pg_link), sg.Text(pg_name)]
        tab_rows.append(row)

    tab_layout = tab_rows
    tab_layouts.append(tab_layout)

# タブグループの作成
tab_group_layout = [[sg.Tab(tab_name, tab_layouts[i]) for i, tab_name in enumerate(tab_names)]]

# 全体のレイアウト
layout = [[sg.TabGroup(tab_group_layout)], [sg.Button("終了")]]

# ウィンドウを作成
window = sg.Window("プログラム一覧", layout)

# 「実行」ボタンのクリック時のコールバック関数
def run_program(pg_link):
    subprocess.run(pg_link, shell=True)  # PGリンクを実行する

def open_link(link):
    if link.startswith("http://") or link.startswith("https://"):
        webbrowser.open(link)  # URLを開く
    elif os.path.isdir(link):
        os.startfile(link)  # フォルダを開く
    else:
        subprocess.run(link, shell=True)  # ファイルを実行する

# 「実行」ボタンのクリック時のイベントハンドラ
def handle_button_click(event):
    if event in pg_links:
        index = pg_links.index(event)  # クリックされたボタンに対応するPGリンクのインデックスを取得
        pg_link = pg_links[index]

        # スレッドを使用してプログラムを非同期に実行する
        threading.Thread(target=open_link, args=(pg_link,)).start()

# イベントループを開始
while True:
    event, values = window.read()

    # ウィンドウが閉じられた場合や終了ボタンが押された場合はループを終了
    if event == sg.WINDOW_CLOSED or event == "終了":
        break

    # 「実行」ボタンがクリックされた場合
    handle_button_click(event)

# ウィンドウを閉じて終了
window.close()

 

上部の「excel_file_path = r"program_list.xlsx" # ここにパスを記載」の部分に、実際に使うExcelファイルのパスを指定すれば完成です。

 

 

【PySimpleGUI】ライブラリのインストール(必要に応じて)

 

PySimpleGUIのインストールに必要なコードです。


pip install PySimpleGUI

 

 

【pandas】ライブラリのインストール(必要に応じて)

 

pandasのインストールに必要なコードです。


pip install pandas

 

 

 

 

Pythonで読み込みするExcelファイル

Pythonで読み込みするExcelファイル

 

「TAB名称」「PG名称」「PGリンク」という3つの列を作ります。

「TAB名称」は、メニュー画面のタブに反映したい名称を記入してください。作業やジャンルごとに自分でわかりやすい名称にするのがオススメです。

 

「PG名称」は、各タブごとに羅列されるプログラムの名称を記入してください。

 

「PGリンク」は、リンクさせるパスを記入してください。ほかのプログラムを起動させたり、PC内のフォルダやファイルを開かせたり、URLを記入しておけばよく使うサイトを開いたりすることもできちゃいます。

 

作成したExcelファイルを任意のフォルダに格納したら、そのパスを前述したとおりコードに書き換えて指定してください。

 

 

パスの簡単な取り込み方

パスの簡単な取り込み方「Shift」+「右クリック」→「パスのコピー」



「Shift」を押しながらファイルを右クリックすると、「パスのコピー」が簡単にできますのでご内密に。

 

 

改善が進む!読み込み対象のコツ

 

実際に自分で使ってみてわかったポイントとして、読み込み対象には「Excelの読込リスト自身へのリンクも設けておくこと」が超オススメです。

 

なぜなら、思いついたときにサッと編集できると効率アップがどんどん進むから!

 

ひらめいたときやアイデアを試したいとき、すぐにExcelのリスト編集ができると改善が繰り返されてもうウハウハが止まらな楽しくなってくるはずですよ。

 

 

 

 

【まとめ】PythonでExcelを読み込みするだけでできる業務効率UP術

 

今回は、業務効率アップ術として「非エンジニアでも活用・編集できるExcelを使ったPythonコード」を解説しました。

 

何から何まで社内SEに丸投げするのではなく、Excelさえ使えれば自分でカスタマイズできる方法は特別なプログラミングのスキルが不要なうえ非エンジニアのITリテラシーを育てる意味でも有効なはず!

 

組み合わせなどアイデアしだいで実用性や拡張性は無限に広がるはずなので、ぜひやってみてくだいまし。

 

 

みなさんに読まれている関連記事のご紹介

 

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

 

ブログトップへ