【物語】

その日、僕たちの郚眲は浮き足立っおいた。あらかじめ蚀っおおくず、我が瀟の瀟長はずおも几垳面な性栌だ。い぀も机の䞊は敎理敎頓されおおり、瀟長が䜜った資料はきっちりファむリングされ、資料棚に収たっおいる。

それでも瀟長は、メヌルや通販、経費アプリのパスワヌドをパ゜コンの暪に匵り出しおいた。しかも、恐ろしく綺麗に誰の目にも明らかに。Wordで䜜られたそのパスワヌド䞀芧衚は恐ろしく矎しくカラヌで色分けされおおり2ペヌゞに枡っおいた。

はじめお瀟長宀を蚪れた僕は、パ゜コンの操䜜方法を聞かれた時、かなり緊匵しおいたが瀟長の矎しいパスワヌド䞀芧衚を芋お驚いたものだ。たぶん、瀟員の䜕人かはこれたでも瀟長にその問題を䌝えたこずがあるだろう。しかし瀟長は、その矎しいパスワヌド䞀芧衚を止めなかった。

しかし、その日僕は改めお意を決しお瀟長に䌝えるべきだず思った。䜕床目かの緊急事態宣蚀が発什され、オフィスに出瀟する人は枛っおいるのだが、逆に倖郚の人が瀟長宀に入ったずしおも人が少なく気付きにくくなっおいる。僕は緊匵した面持ちで瀟長宀を蚪れた。そしお、これたで思っおいたこずを蚀葉にする。

「瀟長、これたでずっず思っおいたのですけど、パ゜コンの暪に貌っおあるパスワヌドの䞀芧衚、危ないですよ。誰かに盗撮されおしたったらどうするんですか」

それでも、瀟長は笑っお蚀った。「田䞭君、そんな怖い顔で蚀わなくおも分かっおいるよ。でも倧䞈倫だよ。私は瀟員たちを信じおいるし、これたでずっずこれでやっおきたんだから。逆にしっかり曞いおなくお、パスワヌド分からなくなったらどうするのそれこそ倧問題だよね。」

瀟長の危機意識をあおっおも駄目だ。そこで、僕はプランAからプランBに切り替えた。ずにかく、パスワヌドマネヌゞャヌの玠晎らしさをプレれンした。「瀟長、最近のパスワヌドマネヌゞャヌは、スマヌトフォンでもパ゜コンでも、どこに居おも安党にパスワヌドが芋られるんですよ。」

それでも瀟長は、あたり乗り気ではなさそうだ。そこで、僕はプランCに切り替えた。「瀟長、僕がパスワヌドマネヌゞャヌぞの入力を党郚するので、しばらく䜿っおみおください。分からなくなったら、い぀でも僕に電話しおください。」

こうしお瀟長はしぶしぶパスワヌドマネヌゞャヌを䜿うこずを了承した。そしお、自分で蚀い出したこずでもあるし、僕は責任を持っお瀟長のパスワヌドマネヌゞャヌを蚭定するこずになった。

぀たり、僕の本日最倧のミッションは、瀟長が䜜ったWordのパスワヌド䞀芧を、パスワヌドマネヌゞャヌに移し替えるこずだ。

しかし、瀟長が矎しく色分けしたWordファむルは衚を利甚しお䜜ったものではない。「▲サむト名、ID、パスワヌド、備考」の各項目を順に䞀行ず぀䞊べただけのものだ。

  • 瀟長がWordで䜜ったパスワヌドの䞀芧衚

    瀟長がWordで䜜ったパスワヌドの䞀芧衚

これを元にしお、パスワヌドマネヌゞャヌに䞀぀䞀぀入力しおいくのは倧倉だ。軜く数えたずころ100個以䞊のアカりントが䞊んでいる。サむト名、ID、パスワヌド、コピヌペヌストを300回以䞊も繰り返さなければならないかず思うず胃が痛くなる。

ずは蚀え、こんなずき、どうしたら良いのか、僕はもう知っおいる プログラミングでなんずかすれば、簡単にパスワヌドマネヌゞャヌに移せるはずだ

しかし

具䜓的にどうやっおパスワヌドマネヌゞャヌに取り蟌んだら良いのか、僕には党く芋圓が぀かなかった。こんな時は、プログラミングの達人であり、矎人の倪田先茩に頌るのが正解だ。

「倪田先茩、教えおください」

僕は倪田先茩に詰め寄る。倪田先茩はい぀も通り嫌な顔䞀぀せず教えおくれた。

「倧抵のパスワヌドマネヌゞャヌはCSVファむルのむンポヌトを備えおいるの。だから、䞀床IDやパスワヌドを列ごずに䞊び替えるプログラムを䜜るず良さそうね。」

倪田先茩が教えおくれた手順は次のような手順だ。

  • (1) Wordに曞かれたパスワヌド䞀芧をコピヌしお、Excelに貌り付ける。
  • (2) Excel VBAを䜿っお「サむト名, ID, パスワヌド, 備考」ずExcelの衚の列に圓おはたるように敎圢する
  • (3) 敎圢した衚をCSVファむルで保存
  • (4) パスワヌドマネヌゞャヌのむンポヌト機胜で取り蟌む
これなら、なんずかなりそうだ。僕は頑匵っお䜜業しお、CSVファむルを䜜成し、無事に某瀟のパスワヌドマネヌゞャヌにパスワヌド䞀芧を取り蟌むこずに成功した。
  • パスワヌドマネヌゞャヌにCSVファむルを取り蟌んだずころ

    パスワヌドマネヌゞャヌにCSVファむルを取り蟌んだずころ

瀟長もすぐにパスワヌドマネヌゞャヌの良さに気付いたようだ。いろいろな端末でパスワヌドを確認できるし、たくさんのパスワヌドの䞭からキヌワヌドで怜玢するこずもできる。そこで、晎れおパ゜コンの暪に貌っおあったらパスワヌド䞀芧はシュレッダヌにかかり安党に廃棄された。

埌日、倪田先茩ず雑談しおいた時に、この件に぀いお倪田先茩から耒めおもらった。

「田䞭君、よくあの頑固な瀟長を説埗できたわねすごいわ。ちょっず芋盎しちゃったよ。」

それを聞いた僕は、それからしばらくの間、倪田先茩の蚀葉を頭の䞭で䜕床も反埩し、だらしない顔でにやけおいた。そしお、それを芋た同僚たちからは気味悪がられおいた。しかし、その事にこの時の僕は気付いおいないのだった。

【プログラム】

さお、皆さんの䞭にも、なかなかパスワヌドマネヌゞャヌを導入できないでいる方、いるのではないでしょうか。日々増え続けるWebサむトのアカりント情報ですが、それらの情報を安党に運甚するには、信頌できる専甚アプリで管理するのが安心です。

ずころが、パスワヌドマネヌゞャヌに移行する最倧の問題は「面倒くさい」に尜きるず思いたす。もし既に䜕かしらの電子デヌタの圢匏になっおいるなら、ちょっず敎圢するだけで、パスワヌドマネヌゞャヌに移行できたす。

こちらから、今回のサンプルのパスワヌド䞀芧やサンプルプログラムをダりンロヌドできたす。

もしも、今回、田䞭君の䌚瀟の瀟長がWordで䜜った䞀芧衚のようなデヌタになっおいるなら、ちょっずプログラムを曞き換えるだけで察応できる可胜性がありたす。田䞭君の䜜業を少しず぀芋おみたしょう。

【手順1パスワヌド䞀芧をExcelに貌り付ける】

たず、Wordのパスワヌド䞀芧デヌタをExcelに貌り付けたす。

  • WordのデヌタをExcelに貌り付けたずころ

    WordのデヌタをExcelに貌り付けたずころ

【手順2プログラムでデヌタが綺麗に䞊ぶように敎圢】

次に、プログラムを䜜っお、これを敎圢しお「サむト名, ID, パスワヌド, 備考」ず各列ごずに次の画像のように䞊ぶように敎圢したす。

  • プログラムを䜜っおデヌタを敎圢しお䞊び替えたずころ

    プログラムを䜜っおデヌタを敎圢しお䞊び替えたずころ

そのために、ここでは、次のようなプログラムを䜜りたした。Excelを起動したら、Sheet1にデヌタが入っおいるこずを確認したしょう。そしお、新芏シヌトSheet2を䜜成したす。それから、[Alt]+[F11]キヌを抌しお、VBA゚ディタを起動したす。そしお、プログラムを蚘述しお実行したしょう。

 Sub 敎圢凊理()
    ' Sheet2のヘッダにヘッダ名を入れる
    Sheet2.Cells(1, 1) = "タむトル"
    Sheet2.Cells(1, 2) = "ID"
    Sheet2.Cells(1, 3) = "パスワヌド"
    Sheet2.Cells(1, 4) = "備考"
    TargetRow = 2
    ' Sheet1の最終行を求める
    MaxRow = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row
    Row = 1 ' 先頭行
    ' 繰り返し凊理する
    While Row <= MaxRow
        ' サむト名を埗る
        Title = Trim(Sheet1.Cells(Row, 1))
        Row = Row + 1
        If Title = "" Then GoTo Continue
        Title = Trim(Replace(Title, "▲", ""))
        ' ID
        ID = Sheet1.Cells(Row, 1)
        ID = Trim(Replace(ID, "ID:", ""))
        Row = Row + 1
        ' パスワヌド
        PW = Sheet1.Cells(Row, 1)
        PW = Trim(Replace(PW, "パスワヌド:", ""))
        Row = Row + 1
        ' 備考 - ただし、項目が存圚しないずきがあるので確認
        Memo = Sheet1.Cells(Row, 1)
        If InStr(Memo, "備考: ") > 0 Then
            Row = Row + 1
            Memo = Trim(Replace(Memo, "備考:", ""))
        Else
            Memo = ""
        End If
        ' Sheet2に曞き蟌む
        Sheet2.Cells(TargetRow, 1) = Title
        Sheet2.Cells(TargetRow, 2) = ID
        Sheet2.Cells(TargetRow, 3) = PW
        Sheet2.Cells(TargetRow, 4) = Memo
        TargetRow = TargetRow + 1
Continue:
    Wend
 End Sub

ExcelのSheet1を順に䞊から䞋ぞ読んでいきたす。その際、サむト名、ID、パスワヌド、備考ずなっおいる郚分を取り出しお、Sheet2に曞き蟌んでいくずいうものです。

【手順3敎圢した衚をCSVファむルで保存】

Excelのメニュヌで、「ファむル名前を付けお保存」で保存圢匏を「CSVファむル」にしおファむルを保存したす。

【手順4パスワヌドマネヌゞャヌでむンポヌトする】

どのパスワヌドマネヌゞャヌを䜿うのかによりたすが、倧抵のパスワヌドマネヌゞャヌには、CSVファむルをむンポヌトする機胜が぀いおいたす。

ちなみに、以䞋は、KeePassずいうオヌプン゜ヌスのパスワヌドマネヌゞャヌを利甚しおCSVファむルを取り蟌んでいるずころです。

  • パスワヌドマネヌゞャヌのCSVむンポヌトの画面

    パスワヌドマネヌゞャヌのCSVむンポヌトの画面

以䞊の手順でパスワヌドマネヌゞャヌぞの取り蟌みが完了したした。次の画面はパスワヌドマネヌゞャヌに取り蟌んだずころです。

  • パスワヌドの䞀芧がパスワヌドマネヌゞャヌに取り蟌たれた

    パスワヌドの䞀芧がパスワヌドマネヌゞャヌに取り蟌たれた

たずめ

以䞊、今回はWordで䜜っおいた玙のパスワヌド䞀芧衚を元にしお、パスワヌドをパスワヌドマネヌゞャヌに取り蟌むたでの顛末を玹介したした。

最近では、さたざたなパスワヌドマネヌゞャヌがありたす。ブラりザずセットで䜿えるパスワヌドマネヌゞャヌにはGoogleパスワヌドマネヌゞャヌや、Firefox Lockwiseがありたす。そしお、本文で玹介したように、無料でオヌプン゜ヌスのパスワヌドマネヌゞャヌもあり、KeePassやBitwardenが有名です。有料で倚機胜な1PasswordやKeeperもありたす。

パスワヌドマネヌゞャヌを䜿い始める時はちょっず倧倉ですが、専甚ツヌルを䜿えば安党にパスワヌドを管理できたす。ただ䜿っおいないずいう方は、導入しおみるず良いでしょう。

自由型プログラマヌ。くじらはんどにお、プログラミングの楜しさを䌝える掻動をしおいる。代衚䜜に、日本語プログラミング蚀語「なでしこ」 、テキスト音楜「サクラ」など。2001幎オンラむン゜フト倧賞入賞、2004幎床未螏ナヌス スヌパヌクリ゚ヌタ認定、2010幎 OSS貢献者章受賞。技術曞も倚く執筆しおいる。盎近では、「シゎトがはかどる Python自動凊理の教科曞(マむナビ出版)」「すぐに䜿える!業務で実践できる! PythonによるAI・機械孊習・深局孊習アプリの぀くり方 TensorFlow2察応(゜シム)」「マンガでざっくり孊ぶPython(マむナビ出版)」など。