パソコンで使えるメモ帳の作り方は?【Python, Tkinter】
- 作成日: 2025-08-19
- 更新日: 2025-08-22
- カテゴリ: メモ
- タグ: メモ帳, アプリ, メモアプリ, エディタ
この記事ではパソコンで使えるメモ帳の作り方を解説します。
この記事を読めばパソコンでメモ帳を作れるようになります。
また、ついでに当サイトが開発しているメモ帳も宣伝させてください。
※この記事はプロモーションを含みます。
パソコンでメモ帳を作るには?
パソコンでメモ帳を作るには、まず世の中のメモ帳がどういうふうに出来ているかを知る必要があります。
世の中のパソコンで使えるメモ帳というのは、何で作られているかと言うと、プログラミング言語で作られています。
プログラミング言語とは?
プログラミング言語とは、パソコンに与える命令を書くための人工的な言語です。
人間が設計して使えるようにしているのが、プログラミング言語です。
プログラミング言語は、ソフトウェアとして配布されています。
つまりパソコンにプログラミング言語のソフトウェアをインストールすると、そのプログラミング言語を使えるようになります。
といってもプログラミング言語を見たことが無いと、どういうものかイメージが湧きづらいと思いますので、簡単な例を出してみたいと思います。
def main():
print(‘Hello, World!’)
main()
上記はPython(パイソン)というプログラミング言語で書かれたプログラムです。プログラムを実行すると画面に「Hello, World!」と表示されます。
ちなみにこのようなプログラムは「ハローワールド・プログラム」と呼ばれていて、だれでも簡単に書けるプログラムとして世界的によく知られています。
先程のプログラムに書かれている「def」とか「main」とかの文字の集まりのことをソースコードといいます。ソースコードとは、プログラミング言語で書かれている命令の集まりのことを言います。Pythonの場合はソースコードのことを単にプログラムあるいはスクリプトと呼ぶこともあります。
Pythonをインストールしてみよう
プログラミング言語のPythonは、世界的に使われている言語の1つです。有名なものだとYoutubeもPythonで作られているらしいです。
Pythonはだれでも無料で使うことが可能です。そのため、インストールする方法がわかればだれでもすぐに使うことができます。
Pythonの公式サイトは以下です。
上記のサイトから「Download」ページに行くとPythonをダウンロードすることができます。
Pythonでもメモ帳は作ることが可能なので、作ってみたい方はPythonをダウンロードしてインストールしてみてください。
「Python インストール方法」でGoogle検索すると、Pythonの具体的なインストール方法を解説したページが出てきますので、そちらも参照してください。
インストールしたPythonを使ってみる
PythonをインストールしたらPythonをさっそく使ってみましょう。
Pythonを使うには「コマンドプロンプト」というソフトウェアを起動します。
これはWindows環境では最初から入っているソフトで、マイクロソフトが用意しているものです。
キーボードの「ウィンドウズ・キー」を押して(左下にある窓のマークのキー)、「コマンドプロンプト」と検索します。そうすると黒いアイコンが出てくると思いますので、それをクリックして起動してみてください。
あるいは「ウィンドウズ・キー」と「Rキー」を同時押しすると「ファイル名を指定して実行」という小さいウィンドウが出ますので、そこに「cmd」と入力してエンターキーを押します。この方法でもコマンドプロンプトを起動できます。
コマンドプロンプトは黒い画面のウィンドウなので、なんとも怪しい感じがすると思います。しかし、ちゃんとしたマイクロソフトが作ってるソフトウェアなので安心してください。
コマンドプロンプトにフォーカスして、キーを入力します。「python -V」と入力してエンターキーを押してみてください。そうするとパソコンに入っているPythonのバージョン(番号)が表示されると思います。
バージョンとはソフトウェアの版を表す番号のことです。「3.13.1」とかこんな漢字の番号になっています。この番号は大きくなればなるほど新しい版です。
Pythonにソースコードを食わせる
先ほどは「ハローワールド・プログラム」のソースコードをあなたにお見せしました。これはプログラムなので、そのまま実行することができます。ではどうやって実行するのでしょうか?
先ほどコマンドプロンプトでPythonを使ってみましたが、ソースコードはPythonに「食わせる」と、プログラムとして実行することができます。食わせるというのは解析して実行させるという意味です。
まず、ソースコードをファイルとして保存する必要があります。先程のソースコードを「hw.py」というファイル名で保存します。「.py」というのは拡張子のことで、Pythonではこの拡張子を普通は使います。
たとえば「hw.py」を「C:/Users/myname/hw.py」に保存したとしましょう。この場合はPythonにこのパス(ファイルの場所を表す文字列)を渡せば、そのソースコードが書かれたファイル(ソースファイル)を実行できます。
> python C:/Users/myname/hw.py
Hello, World!
そうすると上記のようにコマンドプロンプトの画面に「Hello, World!」と表示されます。これでPythonによる開発環境の構築は完了です。あとはメモ帳を作るだけです。
メモ帳を作る
メモ帳というのはアプリ的にはどういったアプリになるのかというところですが、パソコンで動くメモ帳は「デスクトップ・アプリ」というアプリになります。これがスマホで動くメモ帳なら「スマホ・アプリ」です。
デスクトップアプリは、GUIとよばれる見た目が必要です。GUIは「Graphical User Interface」の略で、意味は「グラフィカルな見た目」という意味になります。グラフィカルな見た目というのはたとえばウィンドウがあったり、閉じるボタンが付いてたり、ファイルメニューがあったりといったことを指します。つまりあなたが普段からパソコンで使っているアプリのことを言ってます。
で、このGUIを作るにはPythonでは「ライブラリ」というものがいります。ライブラリとはプログラミングで使う道具のことを言います。PythonのライブラリはPythonで書かれていて、最初から使えるライブラリを「標準ライブラリ」と言い、公式でない外部のライブラリを「外部ライブラリ」と言います。
Pythonには標準ライブラリにGUIを構築するためのライブラリが用意されています。その名も「Tkinter」というものです。Pythonでメモ帳を作るにはこのTkinterを使う必要があります。
ちなみにTkinterの他には外部ライブラリにもGUIライブラリがあります。Tkinterに飽きたらそっちを使ってもいいでしょう。まぁ私はTkinterが好きなのでこっちを良く使いますが。
メモ帳もどきのソースコード
ではメモ帳のソースコードをお見せします。
最小限の構成で、ファイルを開き読み込み、編集し、ファイルに保存できるメモ帳です。
import tkinter as tk
from tkinter import filedialog
class SimpleNote:
def __init__(self, root):
self.root = root
root.title("シンプルメモ帳")
# 上部のボタン
btn_frame = tk.Frame(root)
btn_frame.pack(fill=tk.X, pady=5)
tk.Button(btn_frame, text="開く", command=self.open_file).pack(side=tk.LEFT, padx=5)
tk.Button(btn_frame, text="保存", command=self.save_file).pack(side=tk.LEFT)
# テキストエリア + スクロールバー
self.text = tk.Text(root, wrap="word", undo=True)
scroll = tk.Scrollbar(root, command=self.text.yview)
self.text.configure(yscrollcommand=scroll.set)
self.text.pack(side=tk.LEFT, expand=True, fill="both")
scroll.pack(side=tk.RIGHT, fill="y")
def open_file(self):
path = filedialog.askopenfilename(filetypes=[("Text Files", "*.txt"), ("All Files", "*.*")])
if path:
with open(path, "r", encoding="utf-8") as f:
self.text.delete("1.0", tk.END)
self.text.insert(tk.END, f.read())
def save_file(self):
path = filedialog.asksaveasfilename(defaultextension=".txt",
filetypes=[("Text Files", "*.txt"), ("All Files", "*.*")])
if path:
with open(path, "w", encoding="utf-8") as f:
f.write(self.text.get("1.0", tk.END))
if __name__ == "__main__":
root = tk.Tk()
SimpleNote(root)
root.mainloop()
このソースコードを「C:\Users\myname\memo.py」というファイルで保存します。
そして以下のように実行します。
> python C:\Users\myname\memo.py
すると以下のようなメモ帳が起動すると思います。

「開く」ボタンでテキストファイルを開いて読み込みます。「保存」ボタンでファイル名を付けて保存します。
これぐらいのコードはAIに頼めばすぐ作ってもらえます。便利な時代になりました。
ソースコードの解説
ではAIに書かせたソースコードを人間の私が解説したいと思います(笑。
インポート
まず下の部分です。
import tkinter as tk
from tkinter import filedialog
ここはライブラリをインポートしています。ライブラリはプログラミングで使う道具でした。インポートと言うのは、ソースコード内にほかのソースコードを読み込むという意味です。
import tkinter as tk
というのは、tkinter
をインポートしてtk
という名前を付ける、と言う意味です。
from tkinter import filedialog
というのは、tkinter
からfiledialog
をインポートするという意味です。
このインポートによってtk
とfiledialog
がソースコード中で使えるようになります。
if __name__ == ‘__main__’
次に下の部分です。
if __name__ == "__main__":
root = tk.Tk()
SimpleNote(root)
root.mainloop()
if
というのはif文のことで、これはソースコード中で処理を分岐したときに使われる文です。
if __name__ == “__main__"
というのは「name__という変数が"__main"という文字列だったら」という意味になります。
変数とは箱みたいな入れ物のことです。この入れ物の中身が"__main__"
になっているかチェックしています。
if文でチェックしてその結果が真、つまり__name__
の中身が"__main__"
だったら、以下のコードを実行します。
root = tk.Tk()
SimpleNote(root)
root.mainloop()
root = tk.Tk()
というのは、tk
の中にあるTk
というクラスをオブジェクトにして、root
という変数に入れるという意味です。
クラスとは設計書のことです。Tk
という設計書からroot
というオブジェクトを生成しています。
SimpleNote(root)
というのはSimpleNote
というクラスにroot
を渡して、オブジェクトを生成しています。ここで生成しているオブジェクトは変数には代入していません。
root.mainloop()
は、root
を起動するという意味です。root
はTk
から作られたオブジェクトで、Tk
にはmainloop()
の内容が書かれています(これはここからは見ることはできません)。
SimpleNoteクラス
SimpleNoteクラスを見ていきます。
class SimpleNote:
def __init__(self, root):
self.root = root
root.title("シンプルメモ帳")
…
class SimpleNote:
というのは「ここからSimpleNoteの設計内容だヨ!」という意味の宣言です。インデントを入れた中身がSimpleNoteクラスの中身になります。
def __init__(self, root):
というのはメソッドのことです。メソッドとは、クラスに加えることができる処理のまとまりです。このまとまりは個別に実行することができます。
__init__
メソッドは特殊なメソッドで、これはクラスをオブジェクトにするときに実行されます。self
とroot
はともに__init__
メソッドが使う引数(ひきすう)です。引数と言うのは変数みたいなものです。
# 上部のボタン
btn_frame = tk.Frame(root)
btn_frame.pack(fill=tk.X, pady=5)
tk.Button(btn_frame, text="開く", command=self.open_file).pack(side=tk.LEFT, padx=5)
tk.Button(btn_frame, text="保存", command=self.save_file).pack(side=tk.LEFT)
__init__
メソッドの続きを見ると上記のようになっています。
btn_frame = tk.Frame(root)
というのは、Frame
クラスをオブジェクトにしてbtn_frame
変数に入れています。root
をFrame
に渡していますが、これはFrame
の親をroot
にするためです。Tkinterのクラスには親子関係があります。
btn_frame.pack(fill=tk.X, pady=5)
というのはbtn_frame
をウィンドウに配置しています。pack()
が配置用のメソッドです。このようにクラスのオブジェクトからはクラスが持っているメソッドを呼び出せます。
fill=tk.X
というのはbtn_frame
を横いっぱいに広げる、という意味の指定です。pady=5
というのは縦方向の余白を5
だけ作るという意味です。つまり配置の際に上下に余白ができる形で配置されます。
Button(ボタンの設定と配置)
次にボタン部分を見てみます。
tk.Button(btn_frame, text="開く", command=self.open_file).pack(side=tk.LEFT, padx=5)
tk.Button(btn_frame, text="保存", command=self.save_file).pack(side=tk.LEFT)
上記ではButton
クラスをオブジェクトにして、pack()
で配置しています。
Button
はtext
にボタンの表示テキスト、command
にボタンがクリックされた時に呼び出すメソッドなどを指定します。
「開く」というボタンではself.open_file
というメソッドを呼び出すようにして、「保存」というボタンではself.save_file
メソッドを呼び出すようにしています。
self
というのは特殊な変数で、__init__
メソッドの引数になってます。これは、オブジェクト自身を表す変数です。
pack()
のside=tk.LEFT
というのは配置を左詰めにします。padx=5
は左右の余白を5
取ります。
text(テキストエリア)
次にテキストエリア部分を見てみましょう。
# テキストエリア + スクロールバー
self.text = tk.Text(root, wrap="word", undo=True)
scroll = tk.Scrollbar(root, command=self.text.yview)
self.text.configure(yscrollcommand=scroll.set)
self.text.pack(side=tk.LEFT, expand=True, fill="both")
scroll.pack(side=tk.RIGHT, fill="y")
Text
クラスのwrap="word"
は単語単位で折り返す指定です。undo=True
はアンドゥ機能(元に戻す機能)を有効にする指定です。
Scrollbar
はText
用のスクロールバーです。command
にself.text.yview
を指定しています。こうするとスクロールが機能するようになります。
self.text.configure(yscrollcommand=scroll.set)
というのは、Text
が縦方向にスクロールされたときにscroll.set
メソッドを呼び出すようにする指定です。Text
とスクロールバーを連携するにはこういった設定が必要になります。
pack()
のexpand=True
はウィジェットの伸縮を有効にする指定です。つまり親のウィジェットに合わせて伸縮するようになります。ウィジェットと言うのはTkinterのウィンドウに配置できるクラスなどのことです。fill="both"
というのは上下左右にウィジェットを広げるという指定です。side=tk.RIGHT
はウィジェットを右詰めにする指定。fill="y"
という指定はウィジェットを縦方向に広げる指定です。
open_fileメソッド
次にSimpleNote
のメソッドを見てみます。
def open_file(self):
path = filedialog.askopenfilename(filetypes=[("Text Files", "*.txt"), ("All Files", "*.*")])
if path:
with open(path, "r", encoding="utf-8") as f:
self.text.delete("1.0", tk.END)
self.text.insert(tk.END, f.read())
open_file
メソッドは、ファイルを開いてテキストに内容を読み込むメソッドです。
filedialog.askopenfilename()
はTkinterのツールで、ダイアログを開いてユーザーに開きたいファイルを指定させます。filetypes
にはダイアログで開くファイルのタイプを指定します。拡張子がtxt
のテキストファイルの指定と、その他のファイルの指定をしています。
filedialog.askopenfilename()
はユーザーがファイルを指定すると、その結果としてファイルのパスを返します。パスと言うのはファイルのパソコン上の住所のことです。
if文でpath
が有効ならopen()
でファイルを開きます。
with open(path, "r", encoding="utf-8") as f:
self.text.delete("1.0", tk.END)
self.text.insert(tk.END, f.read())
with open() as f:
というのはファイルをf
という変数として開いて、with
の範囲が終了したらf
を自動で閉じる、という指定です。with
の範囲はインデントを一段下げて指定します。
open()
のpath
の次の引数"r"
はファイルを開くオープンモードで、r
を指定した場合は読み込みモードでファイルを開きます。encoding="utf-8"
はファイルをUTF-8で開くという指定です。UTF-8というのは文字コードの一種で、日本語にも対応しています。文字コードと言うのは、テキストファイルのデータ列の定義方法のことです。UTF-8のほかにはShift-JISなどもあります。
self.text.delete("1.0", tk.END)
はtext
が持っているテキストを全て削除します。delete()
メソッドは最初の引数に削除の開始位置、次の引数に削除の終了位置を指定します。
self.text.insert(tk.END, f.read())
はtext
にテキストを挿入します。insert()
の最初の引数は挿入の開始位置で、tk.END
は最後の位置の指定です。次の引数には挿入したいテキストを指定します。f.read()
はf
のファイル内容を全て読み込んで結果として返しています。つまりファイル内容がinsert()
の引数に渡されています。
save_fileメソッド
次にテキストをファイルに保存するsave_file
メソッドを見てみます。
def save_file(self):
path = filedialog.asksaveasfilename(defaultextension=".txt",
filetypes=[("Text Files", "*.txt"), ("All Files", "*.*")])
if path:
with open(path, "w", encoding="utf-8") as f:
f.write(self.text.get("1.0", tk.END))
このメソッドはopen_file
メソッドに近いです。
filedialog.asksaveasfilename()
で保存するファイル名をユーザーにダイアログで指定させています。
extension=".txt"
というのは保存ファイルの拡張子の指定です。
open()
でファイルを開きますが、オープンモードはw
を指定します。このモードは書き込みモードで、開くファイルは空の状態で新規作成されます。すでにファイルが存在する場合もファイルを空にしてしまうので、注意が必要な指定です。
f.write()
でファイルにテキストを書き込みます。self.text.get(“1.0", tk.END)
はtext
に書き込まれているテキストをすべて取得します。1.0
はtext
の最初からで、tk.END
はtext
の終わりまでを指定します。
【PR】フォルダにメモを書けるメモ帳は?
ここから当サイトが開発して販売している商品の宣伝になります。
当サイトが開発しているメモ帳は「几帳面エディタ」といいます。
BOOTHの販売ページは以下になります。
几帳面エディタとは?

このメモ帳は、ファイルやフォルダにメモを書けるメモ帳です。
仕組みとしてはファイルやフォルダのパスにメモを紐づけて管理する仕組みです。
メモにはマークダウンを使うことができて、マークダウンで書かれたメモをグラフィカルに表示することも可能です。
また、メモ同士をリンクでつなぐことが可能で、メモ同士のネットワークを構築することもできます。
このメモアプリはネット通信をしないので、ローカルで動くマークダウンベースのWikiツールみたいに使うことも可能です。
※専用のWikiツールと比較できるほど多機能ではありません。
メモの他には画像も表示することが可能です。
※一部対応してない画像形式もあります。
メモのビューはWebブラウザのような「進むボタン」や「戻るボタン」が付いていて、メモのリンクをクリックしながらネットサーフィンみたいにパソコン内のファイルやフォルダを行き来することも可能です。
左側のファイルリストから右クリックでファイルのフォルダを開いたり、ファイルをWindowsエクスプローラーで開いたりすることが可能で、簡易的なファイル管理ソフトとしてお使いいただくことも可能です。
※専用のファイル管理ソフトほど多機能ではありません。
このメモ帳は試用版がありますので、どなたでも無料で試用することが可能です。販売ページからダウンロードできます。
動作環境はWindows11 x64になります。
おわりに
今回はパソコンで使えるメモ帳の作り方を解説しました。今回作ったのは最低限の機能のシンプルなメモ帳ですが、これでもけっこうやることがあって大変そうですよね。しかし今の時代はこれぐらいのコードはAIで簡単に生成できます。そこから一段進んだ開発者になるには、コードがどうやって動いているかわかるようになることです。それがわかるとAIには出来ない小回りの効いた修正なども出来るようになります。
この記事が何か参考になれば幸いです。