アクティブシートから特定の書式のセルの数をカウントするマクロ
つくるもの
作業するときに、エクセルでメモを残しながらやっている。 セルの書式毎に「疑問」とか「解決済み」とかタグをつけながらやっている。 発散してくると、「疑問点何個残ってるんだっけ?」となるので集計したい。
いつもの作業イメージ
マクロの完成イメージ
コード
' ' アクティブシートから特定の書式のセルの数をカウントするマクロ ' Sub CountCellsByCellStyleInActiveSheet() '変数定義 Dim strA As String 'Aセルの意味 Dim strB As String 'Bセルの意味 Dim strC As String 'Cセルの意味 Dim countColorA As Long ' Aセルの色を表す変数 Dim countColorB As Long ' Bのセルの色を表す変数 Dim countColorC As Long ' Cのセルの色を表す変数 Dim countA As Long ' Aセルの数をカウントするための変数 Dim countB As Long ' Bのセルの数をカウントするための変数 Dim countC As Long ' Cのセルの数をカウントするための変数 Dim cell As Range ' セルを表す変数 Dim cellA As Range 'Aセルのカウント数出力場所 Dim cellB As Range 'Bセルのカウント数出力場所 Dim cellC As Range 'Cセルのカウント数出力場所 '変数初期化 countA = 0 ' セルの数の初期化 countB = 0 ' セルの数の初期化 countC = 0 ' セルの数の初期化 ' **** config *** 'A,B,Cの意味 strA = "疑問" strB = "Todo" strC = "解決" 'A,B,Cの色 countColorA = RGB(255, 235, 156) ' Aのセルの色を変数に格納 countColorB = RGB(255, 199, 206) ' Bのセルの色を変数に格納 countColorC = RGB(198, 239, 206) ' Cのセルの色を変数に格納 'A,B,Cのカウント結果出力場所 Set cellA = Range("G1") Set cellB = Range("I1") Set cellC = Range("K1") ' *************** For Each cell In ActiveSheet.UsedRange ' 背景色がAのセルの場合、カウントする If cell.Interior.Color = countColorA Then countA = countA + 1 ' 背景色がBのセルの場合、カウントする ElseIf cell.Interior.Color = countColorB Then countB = countB + 1 ' 背景色がCのセルの場合、カウントする ElseIf cell.Interior.Color = countColorC Then countC = countC + 1 End If Next cell '見出しの分だけcount結果を引き算 countA = countA - 1 countB = countB - 1 countC = countC - 1 ' カウント結果をセルへ書き込み cellA.Value = countA cellB.Value = countB cellC.Value = countC ' カウントしたセルの数をメッセージボックスで表示 MsgBox "セルを集計しました" & vbCrLf _ & strA & ": " & countA & vbCrLf _ & strB & ": " & countB & vbCrLf _ & strC & ": " & countC End Sub
感想
VBAカスタマイズがなかなか楽しい。
CMakeLists.txtの再帰的検索とサブディレクトリの追加
はじめに
CMakeを使用したプロジェクトのビルド設定では、CMakeLists.txt
ファイルを用いてプロジェクト構成を定義する。特に、大規模なプロジェクトや階層構造が深いプロジェクトの場合、カレントディレクトリとそのサブディレクトリ内にあるすべてのCMakeLists.txt
ファイルを検索し、それらをプロジェクトのサブディレクトリとして追加する方法が役立つらしい。
以下に再帰的にCMakeLists.txt
ファイルを検索し、サブディレクトリを追加する一例を示す。
実例と解説
cmake_minimum_required(VERSION 3.x) project (your_project_name) file(GLOB_RECURSE TEST_LISTS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} */CMakeLists.txt) foreach(list ${TEST_LISTS}) get_filename_component(dir ${list} PATH) add_subdirectory(${dir}) endforeach()
このCMakeLists.txtファイルは以下の処理を行っている。
- 必要な最低限のCMakeバージョンを指定
- プロジェクト名を指定
- カレントディレクトリから再帰的にCMakeLists.txtファイルを検索し、結果を変数に格納
- 検索したCMakeLists.txtファイルに対してループを実行
- 現在のループで処理されているCMakeLists.txtファイルのディレクトリ名を取得
- ディレクトリをサブディレクトリとして追加
- ループを終了
この方法を使用することで、ディレクトリ構造内のすべてのCMakeLists.txtファイルが自動的に処理され、プロジェクトのビルド設定が生成される。
もうちょっと具体的に解説
このCMakeLists.txtファイルは、以下の処理を行っている。 (チャットGPT-4さんの説明)
cmake_minimum_required(VERSION 3.x)
は、このプロジェクトで必要な最低限のCMakeバージョンを3.xに指定しています。これにより、古いバージョンのCMakeを使用している場合は、エラーメッセージが表示されます。project(your_project_name)
は、プロジェクト名をyour_project_name
に指定しています。file(GLOB_RECURSE TEST_LISTS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} */CMakeLists.txt)
は、GLOB_RECURSE
を使って、カレントディレクトリ(${CMAKE_CURRENT_SOURCE_DIR}
)から再帰的にCMakeLists.txt
ファイルを検索し、結果をTEST_LISTS
変数に格納しています。RELATIVE
オプションは、結果のパスをカレントディレクトリを基準にした相対パスにするために使用されています。file
: CMakeのfile
コマンドは、ファイルやディレクトリに関する操作を実行するために使用されます。これには、ファイルの読み書き、ディレクトリの作成、およびファイルの検索などが含まれます。GLOB_RECURSE
:file
コマンドのGLOB_RECURSE
オプションは、指定されたパターンに一致するファイルを再帰的に検索します。つまり、カレントディレクトリとそのサブディレクトリ内のすべてのファイルを検索対象とします。TEST_LISTS
: 検索されたファイルの結果を格納する変数名です。この例では、TEST_LISTS
という変数に検索結果が格納されます。RELATIVE
:RELATIVE
オプションは、検索結果のファイルパスを、${CMAKE_CURRENT_SOURCE_DIR}
からの相対パスとして取得することを指定します。これにより、絶対パスではなく相対パスを扱うことができます。${CMAKE_CURRENT_SOURCE_DIR}
: 現在のソースディレクトリへのパスを表す変数です。CMakeLists.txtファイルがあるディレクトリを指します。/CMakeLists.txt
: 検索するファイルのパターンを指定します。この場合、すべてのサブディレクトリにあるCMakeLists.txt
ファイルを検索対象とします。
このコマンドを実行すると、カレントディレクトリとそのすべてのサブディレクトリから
CMakeLists.txt
ファイルを再帰的に検索し、相対パスをTEST_LISTS
という変数に格納します。この変数は、後続のforeach
ループで処理され、各サブディレクトリがプロジェクトに追加されます。foreach(list ${TEST_LISTS})
は、TEST_LISTS
に格納されたすべてのCMakeLists.txt
ファイルに対してループを実行します。foreach(list ${TEST_LISTS})
:TEST_LISTS
変数に格納された各ファイルパスに対してループを開始します。ループ内では、list
という変数に現在のファイルパスが格納されます。
get_filename_component(dir ${list} PATH)
は、現在のループで処理されているCMakeLists.txt
ファイルのディレクトリ名を取得し、dir変数に格納しています。add_subdirectory(${dir})
は、dir
で指定されたディレクトリをサブディレクトリとして追加します。これにより、そのディレクトリ内のCMakeLists.txt
ファイルが処理されます。endforeach()
は、foreach
ループを終了します。
このCMakeLists.txtファイルの目的は、カレントディレクトリとそのサブディレクトリ内にあるすべてのCMakeLists.txtファイルを検索し、それらをプロジェクトのサブディレクトリとして追加することです。これにより、ディレクトリ構造内のすべてのCMakeLists.txtファイルが自動的に処理され、プロジェクトのビルド設定が生成されます。
シェルスクリプト `if [ -s hoge.txt ]; then` の意味
疑問
下記のシェルスクリプトに出会ったが意味がわからなかったので調査しました。
if [ -s hoge.txt ]; then rm hoge.txt fi
調査結果
このシェルスクリプトは、hoge.txt
というファイルが存在し、かつサイズが0より大きい(空でない)場合に、そのファイルを削除する役割を果たします。以下、各行の詳細な説明です。
if [ -s hoge.txt ]; then
:hoge.txt
というファイルが存在し、サイズが0より大きいかどうかを確認します。s
オプションは、ファイルが存在し、かつサイズが0より大きい場合に真となります。rm hoge.txt
:条件が真の場合に実行されるコマンドです。hoge.txt
コマンドは、hoge.txt
というファイルを削除します。fi
:if
ステートメントの終わりを示します。
このシェルスクリプトは、hoge.txt
ファイルが存在し、サイズが0より大きい場合に、そのファイルを削除する目的で使用されます。これは、例えばテストの結果をログに記録する前に古いログをクリアするために役立ちます。
補足
if [ -s file ]
のような条件式は、ファイルの存在とそのサイズが0より大きいことを確認するために使われることがあります。ただし、スクリプトの目的や要件によっては、他の条件もよく使われます。以下に、よく使われるファイルに関する条件オプションをいくつか紹介します。
e file
:ファイルが存在する場合に真となります。 例:if [ -e test_log.txt ]; then
f file
:ファイルが存在し、通常のファイルである場合に真となります。 例:if [ -f test_log.txt ]; then
d file
:ファイルが存在し、ディレクトリである場合に真となります。 例:if [ -d test_directory ]; then
r file
:ファイルが存在し、読み取り可能である場合に真となります。 例:if [ -r test_log.txt ]; then
w file
:ファイルが存在し、書き込み可能である場合に真となります。 例:if [ -w test_log.txt ]; then
x file
:ファイルが存在し、実行可能である場合に真となります。 例:if [ -x script.sh ]; then
スクリプトの目的に応じて、これらの条件オプションを使い分けることが一般的です。-s
オプションは、特定のケースで有用ですが、他のオプションと同様に、スクリプトの要件に応じて適切に使用されます。
参考
ChatGPTさんにききました。
command > /dev/null 2>&1 の意味
疑問
シェルスクリプトで下記のような記述に出会ったのでなんのことか調べてみた。
command > /dev/null 2>&1 # command は任意のコマンドのこと
調べた結果
Linuxコマンドので任意のcommand
を実行し、その際の標準出力と標準エラー出力を捨てることを意味しています。
各部分の意味は以下のとおりです。
command
:command
を実行>
:標準出力(stdout)をリダイレクトします。ここでは、/dev/null
にリダイレクトしています。/dev/null
:リダイレクト先。ここに送られたデータはすべて破棄されます。つまり、標準出力を捨てることになります。2>
:標準エラー出力(stderr)をリダイレクトします。&1
:標準出力へのリダイレクト先を指定します。この場合、標準出力(すでに/dev/null
にリダイレクトされている)と同じ場所にリダイレクトされます。つまり、標準エラー出力も捨てられます。
このコマンド全体で、command
を実行し、
その際に発生する標準出力と標準エラー出力を両方とも捨てることができます。これにより、コマンド実行時にコンソールに何も表示されなくなります。
command > /dev/null 2>&1
コマンドは、command
実行時にエラーが発生しても、エラーメッセージが表示されないようになります。
このコマンドの構成要素は、標準出力と標準エラー出力を /dev/null
にリダイレクトしているため、コマンド実行時にコンソールに何も表示されません。これは、スクリプト実行中に不要なエラーメッセージを表示しないようにするために役立ちます。
参考
ExcelVBAでQA表テンプレートを自動作成
作るもの
こんな感じのQA表テンプレートを作るためのマクロを実装
マクロコード抜粋
Sub QA表作成() Dim NewSheet As Worksheet Dim ActiveSheetIndex As Long ' アクティブシートのインデックスを取得 ActiveSheetIndex = ActiveSheet.Index ' 新しいシートを作成し、アクティブシートの次に配置 Set NewSheet = Sheets.Add(After:=Sheets(ActiveSheetIndex)) ' シート名を変更 NewSheet.Name = "QA表" ' ヘッダー行を設定 Range("B2").Value = "No" Range("C2").Value = "Status" Range("D2").Value = "Q" Range("E2").Value = "Q補足" Range("F2").Value = "A" ' テーブルを作成 ActiveSheet.ListObjects.Add(xlSrcRange, Range("$B$2:$F$17"), , xlYes).Name = "テーブル1" ' テーブルの罫線を設定 With Range("B2:F17").Borders .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlThin End With ' セルの上揃えと左揃えを設定 With ActiveSheet.ListObjects(1).DataBodyRange .HorizontalAlignment = xlLeft .VerticalAlignment = xlTop End With ' ヘッダー行の背景色を設定 With ActiveSheet.ListObjects(1).HeaderRowRange.Interior .Pattern = xlSolid .PatternColorIndex = xlAutomatic .ThemeColor = xlThemeColorAccent6 .TintAndShade = 0.799981688894314 End With With ActiveSheet.ListObjects(1).HeaderRowRange.Font .Color = RGB(0, 0, 0) ' 黒色に設定 End With With ActiveSheet.ListObjects(1) .TableStyle = "TableStyleLight1" ' テーブルスタイルをシンプルなものに変更 .ShowTableStyleRowStripes = False ' 行のストライプを削除 End With ' Q, Q補足, A列の幅を設定 Columns("D:F").ColumnWidth = 30.58 ' 新しいシートを作成し、アクティブシートの次に配置 Set NewSheet = Sheets.Add(After:=Sheets("QA表")) ' シート名を変更 NewSheet.Name = "_pulldown_" ' プルダウン用の値を設定 Range("A1").Value = "Open" Range("A2").Value = "Closed" ' QA表シートに戻る Sheets("QA表").Select ' Status列のデータ検証を設定 With ActiveSheet.ListObjects(1).ListColumns("Status").DataBodyRange.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="=_pulldown_!$A$1:$A$2" .IgnoreBlank = True .InCellDropdown = True End With ' Status列の条件付き書式を設定(Open) With ActiveSheet.ListObjects(1).ListColumns("Status").DataBodyRange.FormatConditions.Add(Type:=xlCellValue, Operator:=xlEqual, Formula1:="=""Open""") .Font.Color = -16383844 .Interior.Color = 13551615 End With ' Status列の条件付き書式を設定(Closed) With ActiveSheet.ListObjects(1).ListColumns("Status").DataBodyRange.FormatConditions.Add(Type:=xlCellValue, Operator:=xlEqual, Formula1:="=""Closed""") .Interior.ThemeColor = xlThemeColorDark1 .Interior.TintAndShade = -0.249946592608417 End With Range("A1").Select End Sub
感想
マクロの自動記録 + 手直しでできた。
わからないところはChatGPT先生にきいた。
改訂履歴
- 2023/03/19: コードのリファクタリングとコメント追加
- 2023/03/20: 表のセルの上揃えと左揃えを追加
シェルワンライナー160本ノック: 問題3
問題
下記コマンドで100万個ファイルを作る
$ mkdir ./tmp $ cd ./tmp $ seq 1000000 | xargs -P 2 touch
このファイルを先頭に0つけて7桁のファイルにするようにする
答え
$ time ls -U | xargs -P2 rename 's/^/0000000/;s/0*([0-9]{7})/$1/'
解説
まず rename
コマンドは正規表現にマッチしたファイルを同じく正規表現で置換した結果にリネームするというやつ。
ls -U
はlsをソートせずに表示するやつ。ソートしない分速いらしい。
ここから肝心の正規表現について解説していく。
先頭に0つけて7桁にするには下記ステップを踏めばOK
(1)とりあえず全ファイルの先頭に0000000
をつけちゃう
(2)0*繰り返しのあと数字7桁のみを切り出しちゃう
上記(1)(2)を正規表現で書くと…
#(1) s/^/0000000/ #(2) s/0*([0-9]{7}/$1/ #0* : 0の0こ以上の繰り返し #() : キャプチャグループ。カッコの中の正規表現にマッチするやつを後で$1で参照できるようにする #[0-9]{7} :任意の数字7桁にマッチ。詳しく下記で #[0-9]: 範囲指定の正規表現 0-9の任意の数字にマッチ #{7}: 直前の正規表現の繰り返し回数 #つまりまとめると⇒ 末尾の7桁を残してそれより頭についている0は削除。
感想
chatGPTで質問すれば、わからないところすぐ教えてくれるしすごい。
新しい職場でlinuxごりごり使いそうなので、シェルを使いこなせるといいかなと思ってやり始めたが、「AIに駆逐されるのでこの勉強も不要なのか?」と思いつつ、コツコツやってみる。
イギリス旅行
イギリス旅行にいきました
※まずは、脳みそのことを吐き出します。 ※気が向いたら、写真やらをつけながら校正するかもです。
はじめに
2023/02/16 - 2023/02/23の期間でイギリス旅行へいった。 転職に伴う有休消化のため、行くしか無い。ということで。
雑多につらつらと
- 飛行機について
- 費用と経路
- 予約の方法について
- expediaで検索して目星をつけた後に、ANAのHPで直接確認したが、そちらの方が一万円ほど高かったので、結局expediaで予約。
- オンラインチェックインについて
- トランジットのこと
- 荷物について
- 往路時の羽田でのトランジット
- 国内線(ターミナル2)から国際線(ターミナル3)への乗り継ぎが必要だった。
- 事前の調査ではゲートを出なくても乗り継ぎ用のバスがでているとのことだったので、案内に従って進んだが、コロナためか現在は運休中だった。「あらぁ」と思っていると掃除のおばちゃんが声を掛けてくれて、一度ゲートを出た後に9番乗り場からシャトルバスがでてるのでそれに乗ればよいよ。とのこと。頻繁に出ているようで、向かうとすぐにバスが来て出発できた。
- 復路時のフランクフルトでのトランジット
- ターミナル1のZに着く、 同じターミナル1のBに向かう必要があった。
- トランジットの時間は85min.しかなかったため少し不安だったが、なんの問題もなかった。
- 降りるとBはこちらというような案内があるためそれに従って進む。途中で階段を降りるとシャトルバスが待っていたためそれに乗り込めばBに着いた。おそらく降りてから15min.ぐらいで、目的の搭乗口へ着けた。
- 1日目:移動、ロンドン着
- 名古屋→羽田で1h20m、羽田→ロンドンで17hをかけて、15:35へロンドン着
- 空港から市街までは地下鉄を利用した。1hぐらいでついた。街並みを見ながら段々と都会になっていく様子を見られて良い。
- まずはホテルへチェックインした。受付の若いのお姉さんの喋りが早くて、全然聞きとれず、「これは厳しくなりそうだぁ」と思った。
- 利用したホテルはこちら:メルボルンハウス
- https://www.expedia.co.jp/London-Hotels-Melbourne-House.h1381713.Hotel-Information
- 費用は2泊で¥42,388。高い。。
- 3日目でブライトンに行く予定だったので、電車が出ているということでビクトリア駅にした。
- ただ、結局ビクトリア駅発でない電車を使ってブライトンに行ったためあまり意味はなし。。。
- 周りは結構ホテルが多かった印象。あまり騒がしくなく立地的には良かったと思う。
- とりあえず、ロンドンっぽいところに行くか。ということでタワーブリッジへ向かった。
- 晩ごはんはハンバーガー。一緒に頼んだIPAがめちゃくちゃうまかった。また飲みたい。イギリスで展開されているチェーンのようなので、機会がある方はぜひ行くことをおすすめする。
- 2日目:ロンドン観光
- 早く目が冷めたので、ビッグベンのあたりをお散歩した。
- そのまま、オープンと同時にウェストミンスター寺院へ。
- 大きくてびっくりした。イタリア、ドイツ、ベルギーなどで見てきた教会とは規模がまた違うな。という印象。
- 入場料はなかなか高いが、一見の価値あり。日本語音声ガイドもあるのでじっくり楽しめる。
- その後、10時半過ぎにバッキンガム宮殿へ到着、11時からの衛兵交代を見た。
- 結構人が集まっていた。
- ある程度見て満足したので、全部は見ずに昼ごはん探しに移動。
- 昼ごはんはこちら:The Kati Roll Company
- https://goo.gl/maps/Hy7XSgbiUSmwwxk1A
- ニューヨークが本店らしい
- チキンティッカロールとマンゴーラッシーをいただいた。
- 美味しかった。
- 大英博物館に向かったら、休館日だった。 (後でHPを確認したらストライキだった模様)
- 代わりにナショナル・ギャラリーへ。
- https://goo.gl/maps/NmNUiHWfTMhVCULE8
- 宗教画がたくさんだが、モネとか、ゴッホとかもあった。
- 入場料無料でびっくり。
- 疲れたので、カフェで休憩し、一旦宿にもどった。
- 晩ごはんは宿の近くのこちら:O'Sole Mio
- https://goo.gl/maps/ffABC4LdApC1aGHz5
- ボロネーゼとガーリックパンみたいなのを頼んだ。
- 量が多かったので、パンは持ち帰った。
- "Can I have box to take away?"で持ち帰り用に包んでもらえた。
- ミュージカル「オペラ座の怪人」を鑑賞
- https://goo.gl/maps/ZBEkYBsmtyo76j7DA
- 事前に映画で予習していたので、英語聞き取れずとも楽しめた。
- 日本人の方が出ていて、かっこいいなぁ。と感じた。
- バスで、宿まで戻って、終了。
- ロンドンでの移動は地下鉄、バスあるが、個人的にはバスのほうが好みだった。
- 街の景色を見れるところが良い。
- 地下鉄は、空気が悪くてちょっと苦手だった。
- 3日目:ブライトン
- ロンドン→ブライトンへ移動
- TrainLineのサービスを使って予約した。路線はThameslink。
- 90mぐらい。朝7:30ぐらいの電車に乗ったので空いていた。
- 宿にバックパックを預けた:カッパドキア ゲスト ハウス
- https://www.expedia.co.jp/Brighton-Hotels-Cappadocia-Guest-House.h38765120.Hotel-Information?langid=1041
- 最初着いたときは空いてなかったが、ふらふらして9時過ぎに再度訪れたら受付が空いており、荷物を預けられた。
- 受付の方がすごく丁寧で良かった。
- 部屋も、新しくはないが清潔で良かった。
- 朝食を食べた:Regency Restaurant
- https://goo.gl/maps/uj3Rs1bgPQ42kJrf7
- いわゆるイングリッシュブレイクファースト
- おいしかったし、ロケーションが良くて良かった。
- 街を散策
- 海沿いを歩いたり
- ショッピングポイントをふらついたりした。
- サッカー観戦(ブライトンvsフラム)へ: フェルマースタジアム(American Express Community Stadium)
- https://goo.gl/maps/P1ADabNYsto6PHU57
- 「三笘ユニ買っちゃうぞー」と思って行ったが、ショップには見当たらず。。。多分売り切れ?
- ビールを買って、スタジアム周りを散歩したりしながら時間を潰した。
- 入場してからは、スタンド裏のフードショップ前にテレビがあり、そこでアーセナル戦が流れてたので、そこでみんなで鑑賞。
- 「おぉ!」「あぁ~」などみんなでワイワイ見ていて、すごい楽しかった。
- 本ちゃんの試合はまぁしょっぱい試合で、Fワードが飛び交っていた。それでも生でプレミア観戦できて嬉しかった。
- 戻って晩ごはん:China Garden
- https://goo.gl/maps/fVCwASEkcBcmH3Ni9
- 米食いたいなぁ。と思い中華にした。
- 美味しさは普通。酸辣湯はおいしくなかった。。。
- ロンドン→ブライトンへ移動
- 4日目:リバプールへ移動
- 少し早起きしてブライトンで朝ごはん:GAIL's Bakery Brighton
- https://goo.gl/maps/rjQvQ9fzXBf98Ro5A
- シナモンロールとても美味しかった。
- ブライトンからロンドン ユーストンへ移動
- ユーストン駅近くで昼ごはん:Cappadocia Cafe & Bistro
- https://goo.gl/maps/pHx2a6hvUHGJx5aw6
- フィッシュ&チップス揚げたてで美味しかった。
- ユーストン→リヴァプール
- AvantiWestCoastを利用
- 公式HPから予約した。
- 電車遅れた。
- 電車に乗り込んでも30m出発せず。駅のシグナルトラブルとのことで、ホームに追い出される。
- どうなるんだぁ。。。と思っていたら、一本後の電車へシフトせよ。とのこと。
- シフトした先で、もともとその電車に乗る予定の人が既に乗っており、指定席がバッティング。
- 皆さん、一本シフトされたんだよ。と話して、移動してもらっていた。
- その間、車内でのアナウンスは無し。その辺が、「まじかよ」という感じ。
- 結局周りの顔ぶれをみると結構変わっている状態のまま1h遅れで出発した。
- 出発した際はみんな「ふぅー!」とか言ってて面白かった。
- リバプール着いたらまずは宿へ:ibis Styles Liverpool Centre Dale Street
- ibis stylesはホテルチェーンの模様。
- 2泊で¥16,772。安い。ロンドンが高すぎるだけか。
- ロンドンより広いし、良かった。wifiも早かった。
- 晩ごはんへ:Etsu
- https://goo.gl/maps/poTXpi6yo6a4rL8w5
- 喉が痛くて、風邪っぽかったので日本食へ。(弱っているときは馴染みの味を求める。)
- 日本人の方が経営しており、すごく居心地がよかった。
- その日のおすすめのビーフカレーを頂いた。とても美味しかった。
- デザートもどらやきを頂いた。これもすごく美味しかった。
- 日本語が聞こえることの安心感を強く感じた。
- お店の方も丁寧に接客してくださって、最高だった。
- 日本人で機会がある方は是非行ってほしい。
- 自分が「ロンドンはゴミゴミしているので、リバプールの方がいいですね」と行ったら、お店の方が「あら、私はロンドンのが好きで。。。」っと仰っていて面白かった。
- 少し早起きしてブライトンで朝ごはん:GAIL's Bakery Brighton
- 5日目:リバプール観光
- 風邪が悪化。多分この日が一番体調が悪かった。
- 朝ごはん:Rococo
- https://goo.gl/maps/Tzj3AhUHKuQNSHrt5
- パニーニを食べた。
- 2階にあるのだが、思ったより中は広くてびっくり。飲み物はその場でカウンターから受け取って、食べ物は番号札を持って席で待っていると届けてくれる。
- レジのお姉さんが、「3階もあるから、使っていいよ。」と教えてくれて窓際の席で通りを眺めながらゆったりできてよかった。
- 味も美味しかった。
- ビートルズを学びに:The Beatles Story Exhibition/Museum
- https://goo.gl/maps/71wJbqmMRDvNzvR76
- ビートルズの歴史に沿って、展示されている。
- ビートルズがどれほど世界中で愛されたのか感じることができる。
- 遅めのお昼ごはん:AKA SUSHI Liverpool
- https://goo.gl/maps/HBGJZwAXLaPXxFmEA
- 体調が悪いので、求めるのはやはり日本食
- おそらく中国系の方がやられている感じ。
- テリヤキチキン弁当を頂いた。味はしっかり日本食で美味しかった。
- ホテルに戻って、ゴロゴロして英気を養っていた。
- 晩ごはんは食欲もなかったので、スーパーでリンゴとオレンジジュースを買って済ませた。
- 6日目:マンチェスター観光
- 昨日よりは体調回復。
- 朝からマンチェスターへ移動
- trainlineで予約した。路線はNorthern。時間は1hほど。
- 荷物を預けにホテルへ:Motel One Manchester Piccadilly
- https://www.expedia.co.jp/Manchester-Hotels-Motel-One-Manchester-Piccadilly.h901113.Hotel-Information?langid=1041
- ¥11,230ぐらい
- 10時過ぎなのにチェックインできた。
- 今回一番よかったかも。
- 新しくてきれい、wifi早い。シャワーの水圧強い。
- 朝ごはんへ:Ezra & Gil - Hilton Street
- https://goo.gl/maps/tsZA6EAB3rsjxokr7
- ソーセージサンドを食べようと思っていたが、おすすめはパンケーキだよ。と店員さんに言われたので、パンケーキにしてみた。
- いままでまともにパンケーキ食べたことなかったが、これがとても美味しかった。嬉しい出会い。
- ここでイギリス来てから初めての紅茶を飲んだが、こちらも美味しかった。
- 戦争博物館へ:IWM North
- https://goo.gl/maps/sGGYftFshcxZycmY6
- 私は、戦争関連の歴史館とかが大好きなのでこちらへ。
- 戦勝国目線で第2次世界大戦の展示があったり新鮮だった。
- オールド・トラフォードへ
- https://goo.gl/maps/PFUo3taXJxdAeepR6
- 戦争博物館から近かったので。
- ショップをぐるっと一通りみて、何も買わずに退散。
- アメックススタジアムよりだいぶデカかった。
- エティハドスタジアムへ
- https://goo.gl/maps/jHKJASJEgZgNy1KU7
- ほしかったグッズがあったのでこちらのスタジアムにも来た。
- 買いたいものが買えて大満足。
- 晩御飯へ:ASK Italian
- https://goo.gl/maps/DTDs9EUfVYaJCdZ3A
- ブルスケッタとトマトパスタを食べた。
- この頃にようやく食欲が復活。
- イタリアンは間違い無い。
- 7日目:ロンドンへ移動
- 電車でロンドンへ
- AvantiWestCoastを利用
- 10min.ほど遅れたが、無事にロンドンに着いた。
- 結構頻繁に遅れる印象なので、AvantiWestCoastは要注意だなと言う認識を持った。
- 宿でチェックイン:Lancaster Hall Hotel
- https://www.expedia.co.jp/London-Hotels-Lancaster-Hall-Hotel.h53792671.Hotel-Information?langid=1041
- 一泊¥15,000ぐらい。
- 空港へアクセスしやすいパディントン駅近くのホテルにした。
- このときはチェックインはまだできなかったので、荷物のみ預けた。
- 部屋は広くて、何よりバスタブがあって良かった。
- 向かいの部屋に修学旅行生が泊っていたのか、12時ぐらいまでうるさかったのがマイナス。
- 結構、学生が利用してた印象。
- まずはお昼ごはん:Frankie & Benny's
- https://goo.gl/maps/MJQosxfJS3AJikGu8
- バーベーキューチキンを頼んだのだが、めちゃくちゃ美味しくてびっくりした。
- チキンの下味がうまかった。
- 大英博物館へ
- https://goo.gl/maps/NNYwid4q5eBf6TUXA
- 想像の数倍すごかった。
- ここに来るだけでもイギリスに行く価値があると感じた。
- 世界各地に関する展示物があり、大地球博物館という感じ。
- 特にエジプト関連の展示は、日本に住んでたら見れないものばかりですごく面白かった。
- お土産めぐりを実施
- 主にピカデリーサーカス周りで定番なものを買い漁った。
- ただ、後で空港のショップで全て売っていた。笑
- 地下鉄ヴィクトリアラインを使ったんだけど、すごくきれいだった。割りと新しい路線なのかも。
- 晩ごはんはスーパーで果物買って済ませた。
- もうあまり食欲がなくなってた。
- 電車でロンドンへ
- 8日目:日本へ帰る
- ヒースロー空港へ
- パディントン駅からHeathrow Expressを利用
- 15mほどで着く。速い。
- 荷物を預ける。
- このとき「ヴァクシネーション」と言われて意味不明だった。
- 「vaccination」ワクチンのことで、接種証明見せてということだった。注射を打つジェスチャー、covid-19などの単語で理解して、ハイハイと接種証明アプリ画面を見せてOK
- なんやかんやで、日本へ着。
- 10時過ぎに羽田について、名古屋へは17時発で時間があったので、念願のサウナ北欧へ。
- https://goo.gl/maps/PCp9c9nQyRtVAsCH7
- 予約制なのでそこまで混んでないし、民度がめちゃくちゃ高くてすごく良かった。
- また行きたいと思わせる素晴らしい場所。
- 19時頃名古屋について、旅行終了。
- ヒースロー空港へ
- ロンドン感想
- 急遽、行くなら今しかないと思って決めた旅行だったが、結果的には行って良かった。
- 今回は1人で行ったので、今度海外行くときは奥さんと一緒に行って、色々思い出作れるといいなと思った。
- 良かったところ
- 良くなかったところ
- 街並みは綺麗だが、街はゴミが沢山落ちていて汚い。地下鉄も汚い。
- 日本はやっぱきれいだよぁと思う。東京でもきれいだし。電車の清潔さが全然違うんだよな。と感じた。
- 歩きタバコしているひとが沢山いる。まぁそういう文化なので割り切るしか無いが。
- 街並みは綺麗だが、街はゴミが沢山落ちていて汚い。地下鉄も汚い。