Translate

Post Date:2022年2月2日 

土鍋でつくる「焼きいも」は美味しい

焼き芋(紅はるか)

ドンキに始まり、100円ローソン、ファミマでも販売されるようになり、手軽にそして安価に食べられるようになった焼き芋、寒くなってくると恋しくなります。

焼き芋を買って帰ってくるとワクワクしますが、自宅で美味しい焼き芋が作れれば、熱々の焼き芋を「ハフハフ」しながら食べられて感動倍増です。

一芸調理機器「土鍋薫製器」に惹かれる で紹介している 長谷園 燻製土鍋「いぶしぎん」があれば簡単に美味しい焼きイモができます。

また、「もっと野菜を、美味しく野菜を」と購入した 長谷園 ヘルシー蒸し鍋「どんぐり」 も空焚きができる土鍋なので、同じように焼き芋がつくることができます。

付属のレシピにも「焼きいも」が掲載されています。

焼き芋作りにも、日本が誇る遠赤外線、余熱調理ができる調理器具の土鍋は最適です。


焼き芋第一次ブームは江戸時代

甘くてホクホクの焼き芋は、江戸っ子に冬のおやつとして愛されていたようです。

初期の焼き芋は、かまどに焙烙(ほうらく:素焼きの土鍋)を置いて上から重い木の蓋をして蒸し焼きにして作られていたとあります。

焙烙(ほうらく)

その後、川越で有名な「壺焼き」や「かまど焼き」、そして戦後に「石焼き芋」が満を辞しての登場です。

焼き芋の歴史については、焼き芋小百科 | 日本いも類研究会 の 江戸・東京の焼き芋屋の移り変わり に詳しく記載されています。


焼き芋に合うサツマイモは?

いも・でん粉に関する資料:農林水産省 に”かんしょ(さつまいも)"普及状況が掲載されていて、作付け面積では、

  1. 黄金千貫(コガネセンガン)
  2. 紅はるか
  3. 紅あずま

の順番です。

黄金千貫は九州で生産されているサツマイモで「いも焼酎」の原料として使われています。「紅はるか」は、ねっとり系の「紅あずま」は、ほくほく系の代表格です。

さつまいもMiNi白書 - 品種と特性 | 日本いも類研究会 には、多くのサツマイモの品種が掲載されていますが、近所のスーパーで購入できる何種類かのサツマイモを焼き芋にして食べ比べてみました。

食感水分量甘さ品種
ほくほく少なめ弱い紅あずま、鳴門金時
しっとり多い控えめシルクスイート
ねっとり多め強い紅はるか、安納芋

スイーツに近く冷めても甘くて美味しい「ねっとり系」の「紅はるか」や「安納芋」の人気があるようですが、ホクホクとした「紅あずま」も捨てがたい存在です。

先にあげた安価な焼き芋を提供してくれている各社では、下記のサツマイモが使われています。

店舗品種
ドンキ紅はるか
ファミマ紅はるか、シルクスイート
100円ローソン紅あずま、安納芋

ホクホク系の焼き芋(紅あずま)が扱われているのは100円ローソンだけということからも、甘いしっとりとした焼き芋に人気であることが窺えます。

入手しやすい「紅あずま」と「紅はるか」で「ホクホク」と「ねっとり」の焼き芋を比べてみてください。


焼き芋が甘くなる理由

焼き芋が甘くなるのは、熱によって糊状となったデンプンが、β-アミラーゼによって分解されて麦芽糖になるからだとあります。

しかし、β-アミラーゼは 80℃を超えると活性が低下するとあります。サツマイモのデンプンの糊化は70-75℃で始まるとあるので、70∼80℃の温度で長時間加熱するのが甘い焼き芋作りの秘訣となります。

焙烙で熱した江戸時代も、現代の石焼き芋も、サツマイモが高温にならないようにじっくりと時間をかけて加熱するという、サツマイモを甘くするのに理にかなった調理方法です。

空焚きができる土鍋にも、あるので、この蓄熱効果で美味しい焼き芋ができるのです。


土鍋で焼き芋

土鍋は、土で作られていて、窯で焼かれると中に空気を含んだ小さな穴がたくさんできるために、金属製の調理器具と比べて、緩やかに温度が高まり、冷めにくいと特徴があります。

東京ガスの都市生活レター Vol005. 土鍋の余熱を使って料理上手に!に土鍋で沸かしたお湯の火を止めてからの時間経過と温度の掲載がありました。

図1:各鍋における沸とう消火後の水温変化と時間(2020年9月 東京ガス調べ)

土鍋の蓄熱という特徴から、余熱でも「デンプンが糊化して糖化する温度」で調理することができます。


芋をホイルで包むべきか?

オーブントースターで焼き芋をつくるための片面が黒いホイルが販売されています。

土鍋を使う場合には黒いホイルを使う必要性はありませんが、ホイルで巻いた方がアルミホイルが満遍なく熱を伝えてくれるので、調理時間を短くできます。

しかし、ホイルで巻くとサツマイモから出た水分が飛ばないので皮のパリッと感がでません。サツマイモを直接土鍋に入れた方が、美味しく焼き芋ができます。

サツマイモを土鍋に直に入れると焦げ付く

サツマイモを土鍋に直接いれたときの難点は、皮が土鍋に焦げ付いて洗うのが手間です。

と、いうことからホイルを下に敷いて焼き芋を作るようになりました。これなら土鍋に焦げ付かないし、サツマイモの皮もパリッと焼き上がります。

サツマイモの下にアルミホイルを敷くと焦げ付かない

カットしたサツマイモはホイルに包む

江戸時代も○焼き(まる焼き)の方が好まれたらしいですが、大きなサツマイモで土鍋に入らない場合にはカットしてアルミホイルに包みます。

サツマイモをカットしたときは包んだ方が美味しくできます。

カットしたサツマイモはホイルに包む

出来上がりは、こんな感じです。

カット焼き芋

これはこれで十分に美味しい焼き芋ですが、どちらが好きかと問われれば○焼き(まる焼き)です!


土鍋で焼き芋のレシピ

土鍋にアルミホイルを敷きます。その上に洗って水気を切ったサツマイモを投入。

  1. 強火で20-30分
  2. 余熱で15分

で、完成です。サツマイモを途中でひっくり返す必要もありません。

下写真は、シルクスィート(220g)の焼き芋です。ちょっと大きめだったので、強火で25分、余熱 15分で調理しました。

土鍋で作った焼きいも(シルクスイート)

外側は焦げてパリパリですが、中は、シットリとしていて、程よい甘味です。

しっとり系のシルクスイート

加熱時間は、芋の大きさや品種によっても異なります。ねっとり系は長時間調理した方が甘さが増します。箸が簡単に刺さる硬さでなければ、追い焚きをして様子をみてください。

ねっとり甘い焼き芋もよし、ホクホクの焼き芋も美味しいです。

「いぶしぎん」は、普段は燻製料理に、「どんぐり」は蒸し料理に使っていますが、空焚きできる土鍋があると焼き芋以外にもローストポークやローストビーフも美味しくできます。


焼き芋好きのための本

一般財団法人 日本いも類研究会 の「焼きいもが、好き!」はまさに焼きいも好きのための本です。焼きいもを極めたいのであれば必読です。小ネタ、コラムも楽しく読めます。

Yaki-Imoが、いつか世界中で愛される日本食になりますように。

Post Date:2022年1月29日 

掃いて、拭く、掃除は意外と楽しい

アズマ工業 座敷箒 匠125

お正月に神田明神が監修している「掃き清める新しい暮らし 神様が宿る家の清め方」を読みました。本書の帯に「掃除は最強の厄除け!」とありますが、「掃き清める」とは確かに神々しい感じのするの言葉です。

八百万の神が宿らなくとも、朝の掃き掃除は、清々しい一日の始まりと、適度に身体を動かすことで活動意欲を与えてくれます。

掃き掃除だと集めた塵や埃を目に見えるので「部屋が、こんなにも汚れているのか!」と実感するので、こまめに掃除しようという気持ちになります。また掃除することで部屋にも愛着が湧きます。


必要な掃除用具は3つ

掃除の基本は、掃き掃除と拭き掃除ですが、

  • 箒(座敷箒・棕櫚箒)
  • 柄の長いコロコロ(高性能チリトリ)
  • 一本柄のフローリングワイパー(拭き掃除)

と、必要な掃除用具は3つだけです。

フローリング、畳、カーペットでも座敷箒で掃いて、コロコロで掃いたチリや埃をキャッチします。畳とフローリングは、仕上げにフローリングワイパーにウェットシートを装着して拭き掃除をします。


箒(ほうき)

箒には、座敷箒(ざしきほうき)と

座敷箒(江戸箒):アズマ 匠107

棕櫚(しゅろほうき)箒があります。

棕櫚箒(鬼毛):アズマ 匠114

歴史的には板間を掃除する棕櫚箒の方が古く、畳敷きが広まった江戸中期以降に座敷箒が生まれたとあります。座敷箒は江戸箒とも呼ばれていますが、東日本では座敷箒、西日本では棕櫚箒が普及しました。

棕櫚箒には皮(かわ)箒と鬼毛(おにげ)箒がありますが、皮箒は棕櫚の皮を束ねて穂先部分をほぐしたもので、鬼毛箒は棕櫚の皮を解して繊維状にしたものを束ねています。

鬼毛であれば穂のボリュームがあるので畳にも向いています。


短柄(みじかえ)と長柄(ながえ)

箒の持ち手には、短いもの(短柄)と長いもの(長柄)があります。柄の短い箒は片手で、柄の長い箒は両手で掃き掃除をするように作られています。

手軽に掃除ができるようにと軽めの座敷箒のアズマ 匠125(400g)を選びました。しかし、400gでも片手での掃き掃除にはちょっと重たく感じます。部屋中の掃き掃除をするのであればこの重さが限界です。

手の力に自信がなければ、両手で持って掃除をする長柄か、次に紹介するカバー箒の選択が無難です。


手軽なカバー箒

最初に購入したカバー箒もまだ活躍しています。

US103 床を優しく掃けるほうきS

カバー箒は、シンプルな作りなので、とても軽く、片手で ”ささっ” と掃除をするのに適しています。

棕櫚タイプのカバー箒もあります。

カバー箒は手編みの座敷箒よりも穂が少ないので、掃き心地と機能的には若干劣ります。しかし、「コスト」と「軽さ」を重視、セカンド箒として使う、という方にはオススメできます。


最初の1本としてお薦めする箒

アズマ工業の匠125は、普段使いの座敷箒としてオススメできる一本です。

タイの箒職人が作る手編み箒は、しっかりとした作りですが、400gと手編みの座敷箒としては軽い方です。しかし、穂量は適度にあるので掃き心地はしなやかです。

軽いといっても片手で部屋中を掃き掃除すると手首に疲労を感じる重さです。軽さを求めるのであればカバー箒ですが、掃除のモチベーションを高めるには見た目も重要です。また部屋に吊り下げておいてもいい感じです。

何よりも伝統工芸品としてではなく、実用的な箒としての価格設定がありがたいです。

箒があれば掃除機は必要ありませんが、セカンド掃除機の代替としてもアズマ工業の座敷箒はオススメできます。

匠125はアズマ工業のサイトでは取り扱いがなくなっています。穂量も多いひとつ上のランクの匠107という選択肢もありかと思いますが、少しでも軽さを求めるのであれば、いまのうちに購入することを勧めます。


柄の長いコロコロ

柄の長いコロコロ(カーペットクリーナー)は掃き掃除には必需品です。

象と散歩: 箒(ほうき)のある生活でも記載しましたが、掃いたゴミは、コロコロで取るのが楽です。チリトリではきれいにゴミをとりきれません。現代の家での掃き掃除では、箒と長柄コロコロ(粘着式チリトリ)は不可分の関係にあります。

通常のコロコロだと、掃いた後に「かがむ・しゃがむ」そして「立つ」といった一連の動作が必要となり苦痛です。

柄が長いコロコロであれば立ったまま使えるので、掃きながらゴミを粘着させることができます。

無印良品のカーペットクリーナーと木製ショートポールを組み合わせれば見た目もお洒落な粘着式チリトリになります。付属ケースはスタンドにもなるので収納にも便利です。

アルミのポールもありますが、木製ショートポールがオススメです。

木製ショートポールは楽天の無印良品公式で購入できます。



一本柄のフローリングワイパー

最後が拭き掃除に使う、一本柄のフローリングワイパーです。一本柄タイプのフローリングワイパーは数多くありません。

象と散歩: 掃除の基本は「掃いて」「拭く」(フローリングワイパー編)でも紹介していますが、Amazonで購入できる 山崎産業(コンドル) DailyCleanフローリングワイパー300 は実用性、耐久性ともにお薦めできるフローリングワイパーです。

掃き掃除のあとにウェットシートを装着して拭き掃除をします。また、ドライシートを装着をすればちょっとした掃き掃除代わりにもなります。

無印良品が近くにあるのであれば、象と散歩: 最強のフローリングモップで紹介している無印良品 掃除用品システム・木製ポール(110cm)は、簡易シートだけでなく、ドライモップやウェットモップも取り付けられるので、掃除の幅が広がります。


やっぱり欲しい棕櫚箒

鬼毛の棕櫚箒も使ってみたいなと思いながらなかなか手を出せずにいます。

棕櫚の皮を解してコシのある繊維だけを選んで束ねた鬼毛の棕櫚箒は、価格もそれなりに高価です。

アズマ工業は、実用的な箒を低価格で提供してくれているので、棕櫚箒を買うなら匠114かと思っていますが、アズマの中でも鬼毛の棕櫚箒は高価です。

それでも欲しいなあ、、、


スキマ掃除用の箒

部屋のコーナーや、家具の隙間など、掃き掃除がしにくい場所ように、穂幅が10cmのモダンブルーム短柄を購入しました。

アズマ工業 モダンブルーム 短柄

家具の多い入り組んだ洋間に」とありますが、まさに下写真のような感じで使っています。座敷箒を縦にして使うよりも断然に掃除しやすいです。

アズマ工業 モダンブルーム 短柄 MB135

大きな床面を履くのには不便すぎる箒ですが、スキマ掃除にはとても重宝しています。


掃き掃除のメリット

象と散歩: 箒(ほうき)のある生活では、掃き掃除での掃除体験には、イケア効果(IKEA Effect)があると記載しました。

しかし、脱掃除機生活になってから掃除が丁寧になったのは間違いがありません。また手軽にいつでも掃除できることから、こまめに掃除をするようになりました。

箒を使った掃き掃除によって、下記の5つのメリットが得られます。

  1. 朝の掃除で清々しい1日のスタート
  2. 部屋の汚れを知る
  3. 時間帯を気にせず掃除ができる
  4. こまめに掃除をするようになる
  5. 掃除が楽しくなる

箒はエシカルな掃除用具であるとともに、何よりも”掃除を楽しく”してくれる素晴らしい道具です。箒で履くと不思議と拭き掃除もと思えます。

Post Date:2022年1月3日 

GASでシートを処理するなら配列を使え!

ゾウでもわかる Google Apps Script

GoogleスプレッドシートをGAS(Google Apps Script)で処理するのであれば配列を覚えましょう。配列を使ってシートの読み書きを一括で行うと処理が格段に速くなります。


なぜ配列を使うのか

GASには、

  • Google Sheets のアクセスに時間がかかる
  • 6分で処理が強制停止される

という制約があります。

Googleスプレッドシートを操作するときに

  • getRange()
  • getValue()/getValues()
  • setValue()/setValues()
  • getLastRow()/getLastColmun()

などのメソッドを使いますが、これらの呼び出しには時間がかかります。

行数が多いシートでは、1行づつシートを読み書きするのと、配列で一括で読み書きするのでは分単位で処理時間が違ってきます。


二次元配列とは

「でも、配列って難しそう、、、」

と、思われがちですが、二次元配列はシートと同じと考えれば簡単です。下記のように行と列で表記されます。

values[行][列]

valuesは変数名です。後ろに続く最初の[]が行で、次の[]が列です。シートの"A1"という表記はA列1行目と列行の順番ですが、配列は行列の順番です。

注意点としては配列のインデックスは0から始まるので、 A1と同じ1行1列目のデータはvalues[0][0]となります。

  • 二次元配列はシートと同じ行と列
  • 表記の順番は[行][列]
  • インデックスは0から始まる

これだけ理解できれば配列を自在に扱うことができます。

では、下記がシートで考えた場合にどのデータを指しているか考えてみてください。

  • values[1][2]
  • values[2][0]

答えは、

  • 2行3列目のデータで C2
  • 3行1列目のデータで A3

です。

また、values[0]と記載した場合は1行目のデータとなり、values と[]を付けなければ配列全体となります。


サンプルデータで配列の中身を確認する

実際に、4行3列のサンプルデータで二次元配列を確認していきます。

二次元配列のサンプル

下記のデータをGoogleスプレッドシートにコピーしてください。

グループ男性女性
A1020
B2010
C1515

シートをシートIDとシート名から取得していますので、下記のコードの sheetId と sheetName の値を変更してください。

シートIDはURLの赤字の部分となります。

https://docs.google.com/spreadsheets/d/abcd1234/edit

シート名は、シートに付けている名前です。

シート名:シート1

下記のコードを実行します。

function myFunction() {
  //シートオブジェクトの取得
  var sheetId = 'abcd1234'
  var sheetName = 'シート1'
  var sheet = SpreadsheetApp.openById(sheetId).getSheetByName(sheetName)

  //配列へシート全体を読み込む
  var values = sheet.getDataRange().getValues()
	
  Logger.log(values[1][2])
  Logger.log(values[2][0])
  Logger.log(values[0])
  Logger.log(values)
}

実行結果は下記の通りです。

20.0
B
[グループ,男性,女性]
[[グループ,男性,女性],[A,10.0,20.0],[B,20.0,10.0],[C,15.0,15.0]]

最後の配列全体の出力結果はカンマ区切りでデータが続いているので一見難しそうです。しかし、各要素を見ると[]が各行のデータで、その中に各列のデータがカンマで区切られていることがわかります。


シートのデータを配列に読み込む

上記サンプルコードの8行目でシート全体(データ範囲)を読み込んでいます。

var values = sheet.getDataRange().getValues()

getRange()で、下記のように範囲を指定してシートを読み込むこともできます。

getRange(開始行、開始列, データを読み込む行数, データを読み込む列数)

データを読み込む行数と列数はgetLastRow()、getLastCloumn()でそれぞれ取得できます。

//範囲を指定して読み込む
var lastRow	= sheet.getLastRow()	//最終行の取得
var lastColumn	= sheet.getLastColumn()	//最終列の取得
var values = sheet.getRange(1, 1, lastRow, lastColumn).getValues()

しかし、シート全体を読み込むのであれば、getDataRange() で範囲を指定しない方が簡単です。


ヘッダー行の削除 shift()メソッド

計算処理などをする場合にはヘッダー行は不要です。

範囲指定で2行目から最終行を読み込むこともできますが、シート全体を配列に読み込んでから1行目を削除した方が簡単です。

function myFunction() {
  //シートオブジェクトの取得
  var sheetId = 'abcd1234'
  var sheetName = 'シート1'
  var sheet = SpreadsheetApp.openById(sheetId).getSheetByName(sheetName)

  //配列へシート全体を読み込む
  var values = sheet.getDataRange().getValues()
	
  //ヘッダー行の削除
  values.shift()

  Logger.log(values)
}

shift()メソッドは、二次元配列先頭の一次元配列を削除します、、、。簡単にいえば、1行目のデータの削除です。

配列の全行処理は for ... in が便利

配列を全行処理するには、for...in 文が便利です。

下記の11-13行目が for...in の記載となります。これで、in の後ろに記載した配列(values)を1行づつ処理することができます。変数 i には現在処理をしている行数が格納されます。

function myFunction() {
  //シートオブジェクトの取得
  var sheetId = 'abcd1234'
  var sheetName = 'シート1'
  var sheet = SpreadsheetApp.openById(sheetId).getSheetByName(sheetName)

  //配列へシート全体を読み込む
  var values = sheet.getDataRange().getValues()
  
  //各行の出力
  for (var i in values) {
    Logger.log(values[i])
  }
}

前述したように配列のインデックスは0から始まりますので、変数 i の出力結果は、0, 1, 2 となります。

普通にforループで記載するならlengthプロパティで配列の要素数(行数)を求めてループさせます。

下例では要素数(length)は3です。0行目、1行目、2行目と3回ループを回すので配列の要素数未満という条件でループさせます。

function myFunction() {
  //シートオブジェクトの取得
  var sheetId = 'abcd1234'
  var sheetName = 'シート1'
  var sheet = SpreadsheetApp.openById(sheetId).getSheetByName(sheetName)

  //配列へシート全体を読み込む
  var values = sheet.getDataRange().getValues()
  
  //各行の出力
  numOfRow = values.length
  for (var i=0; i < numOfRow; i++) {
    Logger.log(values[i])
  }
}

for ... in文で記載した方が簡単です。

末尾に列を追加する push()メソッド

次に男性と女性の数を合算して列の最後(D列)に追加します。

繰り返しとなりますが、配列のインデックスは0から始まりますので、男性は values[i][1] で女性は values[i][2]です。

行の最後に列を追加するには、push()メソッドを使います。

function myFunction() {
  //シートオブジェクトの取得
  var sheetId = 'abcd1234'
  var sheetName = 'シート1'
  var sheet = SpreadsheetApp.openById(sheetId).getSheetByName(sheetName)

  //配列へシート全体を読み込む
  var values = sheet.getDataRange().getValues()
  
  //各行の出力
  for (var i in values) {
    values[i].push(values[i][1] + values[i][2])
  }
  Logger.log(values)
}

i行目の最後に男性と女性の合算値を追加して、最後に配列全体を出力しています。


ヘッダー行の追加 unshift()メソッド

合算値を追加した新しいヘッダー行を unshift()メソッドで先頭行に追加します。

function myFunction() {
  //シートオブジェクトの取得
  var sheetId = 'abcd1234'
  var sheetName = 'シート1'
  var sheet = SpreadsheetApp.openById(sheetId).getSheetByName(sheetName)

  //配列へシート全体を読み込む
  var values = sheet.getDataRange().getValues()
  
  //男性と女性を合算して行の末尾に列を追加
  for (var i in values) {
    values[i].push(values[i][1] + values[i][2])
  }

  //ヘッダー行の追加
  values.unshift('グループ','男性','女性','合計')

  Logger.log(values)
}

配列のデータをシートに書き戻す

最後にシートに書き戻します。シートにデータを書き込むには、書き込む範囲を getRange() で指定する必要があります。

getRange(開始行, 開始列, 行数, 列数)

開始行と開始列は、それぞれ1行目と1列目です。

行数は、values.length です。列数は配列の最初の行の長さ values[0].length で求まります。

指定した範囲に 配列 values を書き込みます。

function myFunction() {
  //シートオブジェクトの取得
  var sheetId = 'abcd1234'
  var sheetName = 'シート1'
  var sheet = SpreadsheetApp.openById(sheetId).getSheetByName(sheetName)

  //配列へシート全体を読み込む
  var values = sheet.getDataRange().getValues()
  
  //男性と女性を合算して行の末尾に列を追加
  for (var i in values) {
    values[i].push(values[i][1] + values[i][2])
  }

  //ヘッダー行の追加
  values.unshift('グループ','男性','女性','合計')

  //配列をシートに書き込む
  var values = sheet.getRange(1, 1, values.length, values[0].length).setValues(values);
}

シートを確認すると、配列で計算した結果が書き込まれているのがわかります。

配列をシートに書き込んだ結果

以上が、

  1. シートから配列に読み込む
  2. 配列で処理をする
  3. 配列をシートに書き込む

という、一連の処理の簡単な説明となります。


GASの基礎を学べる参考図書

ある程度プログラミンがわかっていれば、WEBやYoutubeでも十分に調べられると思いますが、初歩的なところからであれば参考図書は有効な学習手段です。

詳解! Google Apps Script完全入門 [第3版]」は、プラグラミング初心者にわかりやすく説明されています。GASを最初に学ぶ一冊として良書です。

Udemy オススメ講座

【新IDE対応】Google Apps Script(GAS)の基礎を完全習得

【新IDE対応】Google Apps Script(GAS)の基礎を完全習得

講師:事務職たらこ

印象に残りやすい手書き風スライドを用いGASの基本的なプログラミングを気軽に学ぶことができる。本講座でGASを活用した自動化ができるレベルにはなれないが、基礎としては十分。

象と散歩:人気の投稿(過去7日間)