CALENDAR

このブログを検索

2011年8月31日水曜日

Excel Macro で工程表(Gantt Chart)のツール(完結編)

皆さん、こんばんは。

今回は、完結編として工程表でジグザク線を自動で書かせてみたいと思います。
一応、このシリーズはこれで終わりの予定です。

以下に、マクロのスクリプトを書いておきます。

Sub ZigzagLine()
'
' ZigzagLine Macro
'
Dim i As Integer
Dim SSD As Double
Dim SD As Double
Dim ED As Double
Dim p As Double
Dim Dulation As Double
Dim X1 As Double
Dim Y1 As Double
Dim X2 As Double
Dim Y2 As Double
Dim X3 As Double
Dim Y3 As Double
Dim a As Single
Dim colval As Single
Dim L As Double
If Not TypeName(Selection) = "Range" Then Exit Sub
i = Selection.Cells.Row
SD = Cells(i, 3).Value
ED = Cells(i, 4).Value
p = Cells(i, 9).Value
SSD = Cells(8, 10) 'To adjust with First Date Cell
X1 = Cells(8, 10).Left + (SD - SSD) * 25.5 + (ED - SD + 1) * p * 25.5
If X1 < Cells(8, 10).Left Then X1 = Cells(8, 10).Left a = 3 Else If X1 > Cells(8, 52).Left Then
X1 = Cells(8, 52).Left
a = 3
Else
a = 2
End If
End If
Y1 = Selection.Top + Selection.Height / a
X2 = Selection.Left
Y2 = Selection.Top
X3 = Selection.Left
Y3 = Selection.Top + Selection.Height
If Cells(i, 6).Value = "" Then Exit Sub
If Cells(8, 51).Value < Cells(i, 3).Value Then Exit Sub If a = 2 Then With ActiveSheet.Shapes.BuildFreeform(msoEditingAuto, X2, Y2) .AddNodes msoSegmentLine, msoEditingAuto, X1, Y1 .AddNodes msoSegmentLine, msoEditingAuto, X3, Y3 .ConvertToShape.Select End With Else With ActiveSheet.Shapes.BuildFreeform(msoEditingAuto, X2, Y2) .AddNodes msoSegmentLine, msoEditingAuto, X1, Y1 .AddNodes msoSegmentLine, msoEditingAuto, X1, Selection.Top + Selection.Height * 2 / a .AddNodes msoSegmentLine, msoEditingAuto, X3, Y3 .ConvertToShape.Select End With End If If X1 > X2 Then
colval = 12
Else
colval = 10
End If
Selection.ShapeRange.Line.Weight = 3.25
Selection.ShapeRange.Line.ForeColor.SchemeColor = colval
Cells(i + 1, 22).Activate 'To adjust with Next Start Date Cell
End Sub



【ちょっと解説】
C,D,Eの各列に予定工程の開始、終了、工数を書き込み、F,G,Hには実績工程のものを書き込んでおきます。

I列には進捗率を記入したうえで、ジグザグ線を記入したい行の管理日(ジグザグ線の始点となる日)を左側に置いたうえで上記のマクロを実行します。

進捗が遅れていれば赤線で、進んでいれば青線で、また、計画に対しての進捗率が表の中であれば三角に、工程表からはみ出るようであれば台形になるようになっています。

案の定、スパゲッティ・プログラムなので見難い(恥ずかスイ^^;)でしょうが、皆さんのそれぞれの工程表に合わせて、作り直してから使ってみて下さい。

今までの解説したサンプルファイルを置いておきますので、ここからダウンロードして各自使ってみて下さい。
何よりも、『習うより慣れろ』です。

それでは又、御機嫌よう…

2011年8月7日日曜日

Excel Macro で工程表(Gantt Chart)のツール(前回の答え)

皆さん、こんにちは。

前回では3つのツールをExcel Macro で作りましたが、その中で宿題を出しておりました。

今回は、その答え合わせをします。

回答は、1番目(選択範囲にバーを引くマクロ)と2番目のマクロ(作業開始日(Start Date)・終了日(Finish Date)からバーを引くマクロ)を改良しなければ、一つのセルが2日以上の時には使えない、というものです。

以下にそれぞれの正解マクロを書き出します。


● 選択範囲にバーを引くマクロの改良版

Sub Square_mod()
'
' Square_mod Macro
'
Dim X As Double
Dim Y As Double
Dim X2 As Double
Dim Y2 As Double
Dim L As Double
Dim DW As Double
Dim s As Single
Dim E As Single
Dim i As Integer
If Not TypeName(Selection) = "Range" Then Exit Sub
i = Selection.Cells.Row
DW = Cells(8, 6).Width / Cells(1, 43).Value
Cells(i, 5).Value = Selection.Columns.Count * Cells(1, 43).Value 'duration
s = Int((ActiveCell.Left - Cells(8, 6).Left) / DW) + Cells(8, 6)
E = s + Cells(i, 5) - 1
Cells(i, 3).Value = s 'start date
Cells(i, 4).Value = E 'end date
L = 9#
X = Selection.Left
Y = Selection.Top + L / 2
X2 = Selection.Width
Y2 = Selection.Height - L
ActiveSheet.Shapes.AddShape(msoShapeRectangle, X, Y, X2, Y2). _
Select
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 47
Selection.ShapeRange.Line.Weight = 1.25
With Selection
.Placement = xlMove
.PrintObject = True
End With
End Sub


● 作業開始日(Start Date)・終了日(Finish Date)からバーを引くマクロの改良版

Sub Dulation_mod()
'
' Dulation_mod Macro
'
Dim i As Integer
Dim SSD As Double
Dim SD As Double
Dim ED As Double
Dim Dulation As Double
Dim DW As Double
Dim X1 As Double
Dim Y1 As Double
Dim X2 As Double
Dim Y2 As Double
Dim L As Double
If Not TypeName(Selection) = "Range" Then Exit Sub
i = Selection.Cells.Row
SD = Cells(i, 3) 'To adjust with Start Date Cell
ED = Cells(i, 4) 'To adjust with End Date Cell
Dulation = ED - SD + 1
SSD = Cells(8, 6) 'To adjust with First Date Cell
DW = Cells(8, 6).Width / Cells(1, 43).Value
Range(Cells(i, SD - SSD + 6), Cells(i, Int((ED - SSD) / DW))).Select
L = 9#
X1 = (SD - Cells(8, 6)) * DW + Cells(8, 6).Left
Y1 = Selection.Top + L / 2
X2 = Dulation * DW
Y2 = Selection.Height - L
ActiveSheet.Shapes.AddShape(msoShapeRectangle, X1, Y1, X2, Y2). _
Select
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 47
With Selection
.Placement = xlMove
.PrintObject = True
End With
Cells(i, 5).Value = Dulation 'To adjust with Dulation Column
Cells(i + 1, 3).Activate 'To adjust with Next Start Date Cell
End Sub


詳しくは自分で確認して見るとわかると思いますが、Cells(1, 43) = AQ1 セルに、セル一つ毎の日数を記入する欄を設け、それを変える毎に勝手に日数の計算の修正をしてくれるようになっています。

前回のマクロとの違いをそれぞれよーく見比べてみて下さい。

では又。

2011年8月3日水曜日

エクセルのマクロ・ツールで工程表(Gantt Chart)を便利に!

ご無沙汰しております。
久しぶりに自分のコンテンツで更新する気になりました。

今回は、趣向を凝らして、表題の通りに、エクセルで工程表を作るに当たり、自分が使っているマクロ・ツールを3つほど、公開してみようと思います。

これらのマクロをショートカット・キーに登録しておけば、大概の工程表はエクセルで手早く作ることが出来る筈です^^。

まずは、週間工程、又は月間工程表を下の例のように準備します。

★ 週間工程表


★ 月間工程表

表記が英語で書かれているのは、こちらの仕事の都合ですのでご容赦をw


ここで、F8セルに工程表の最初の日付がくるように作っていますが、これは後でマクロで参照させる要(かなめ)となります。
この位置を変更させたい方は、マクロの中の Cells(8,6) という記述を変える必要があります。

また、各項目の作業開始日(Start Date)・終了日(Finish Date)と作業日数(Dulation)も、それぞれC/D/E列でマクロは記述させております。
AQ1(=Cells(1,43))セルには、週間工程では1列1日表示なので1を、他の、例えば1列7日表示の場合は7を入れて参照しています。


言い忘れましたが、なぜ私がエクセルで工程表を書いているのかといえば、ひとえに表現力の違いです。

Micro Soft Project やPrima Vela では作業単位の設定、主要設備・労働力の分散(俗にいう山崩し)や、原価管理、プロジェクトごとの工程管理などに絶大な威力を発揮できることは言うまでもないのですが、例えば、下のような表現力は持ち合わせておりません。

★ サンプル


どうでしょうか、私がエクセルにこだわり続ける心情を少しでも察して頂けたでしょうか?


で、いきなりマクロ表記に入ります。

● まずは選択範囲にバーを引くマクロです。

Sub Square1()
'
' Square1 Macro
'
Dim X As Double
Dim Y As Double
Dim X2 As Double
Dim Y2 As Double
Dim L As Double
Dim s As Single
Dim E As Single
Dim i As Integer
If Not TypeName(Selection) = "Range" Then Exit Sub
i = Selection.Cells.Row
Cells(i, 5).Value = Selection.Columns.Count * Cells(1, 43).Value 'duration
s = ActiveCell.Columns(ActiveCell.Columns.Count).Column + Cells(8, 6) - 6
E = s + Cells(i, 5) - 1
Cells(i, 3).Value = s 'start date
Cells(i, 4).Value = E 'end date
L = 9#
X = Selection.Left
Y = Selection.Top + L / 2
X2 = Selection.Width
Y2 = Selection.Height - L
ActiveSheet.Shapes.AddShape(msoShapeRectangle, X, Y, X2, Y2). _
Select
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 47
Selection.ShapeRange.Line.Weight = 1.25
With Selection
.Placement = xlMove
.PrintObject = True
End With
End Sub


以上を標準モジュールの中(例えばModule1)に入れておきます。
その上で、工程表の中の同一行でバーを引きたい範囲を選んでおいてから、マクロを実行してみます。

どうでしょうか?ちゃんとマクロが動いていれば、バーが引けると同時に、Start Date・Finish Date・Dulationまで表示してくれるはずです。


● 次に、作業開始日(Start Date)・終了日(Finish Date)からバーを引くマクロです。

Sub Dulation()
'
' Dulation Macro
'
Dim i As Integer
Dim SSD As Double
Dim SD As Double
Dim ED As Double
Dim Dulation As Double
Dim X1 As Double
Dim Y1 As Double
Dim X2 As Double
Dim Y2 As Double
Dim L As Double
If Not TypeName(Selection) = "Range" Then Exit Sub
i = Selection.Cells.Row
SD = Cells(i, 3) 'To adjust with Start Date Cell
ED = Cells(i, 4) 'To adjust with End Date Cell
Dulation = ED - SD + 1
SSD = Cells(8, 6) 'To adjust with First Date Cell
Range(Cells(i, SD - SSD + 6), Cells(i, ED - SSD + 6)).Select
L = 9#
X1 = Selection.Left
Y1 = Selection.Top + L / 2
X2 = Selection.Width
Y2 = Selection.Height - L
ActiveSheet.Shapes.AddShape(msoShapeRectangle, X1, Y1, X2, Y2). _
Select
Selection.ShapeRange.Fill.ForeColor.SchemeColor = 47
With Selection
.Placement = xlMove
.PrintObject = True
End With
Cells(i, 5).Value = Dulation 'To adjust with Dulation Column
Cells(i + 1, 3).Activate 'To adjust with Next Start Date Cell
End Sub


作業開始日、終了日に日付を入力したら、同一行にカーソルを置いた状態でマクロを実行してみて下さい。

バーが表示され、作業日数まで表示されたら成功です。


● 最後に、上記2つのマクロで書かれたバーを、微調整をした上で、Start Date ・Finish Date 並びにDulation を変更してくれるマクロです。

Sub ReadShapeData()
'
' Read Shape Date Macro
'
Dim i As Integer
Dim N As Double
Dim L As Double
Dim W As Double
If TypeName(Selection) = "Range" Then
MsgBox "Please select shape object.", vbCritical
Exit Sub
End If
With Selection.ShapeRange
Cells(Selection.TopLeftCell.Row, 3).Value = Cells(8, 6) + (.Left - Cells(8, 6).Left) / (Cells(8, 6).Width / Cells(1, 43).Value)
Cells(Selection.TopLeftCell.Row, 4).Value = Cells(Selection.TopLeftCell.Row, 3) + .Width / (Cells(8, 6).Width / Cells(1, 43).Value) - 1
Cells(Selection.TopLeftCell.Row, 5).Value = Cells(Selection.TopLeftCell.Row, 4) - Cells(Selection.TopLeftCell.Row, 3) + 1
End With
End Sub

上記のマクロを、修正したShapes Object を選択したままで実行してみて下さい。

ちゃんとした日付が返されれば大成功です。


とすらすらと書いていきましたが、上記3つのマクロを試していくと、上の内の2つのマクロは、月間工程表ではそのままでは使えないことに気づいたはずです。

書かれているコードよく読んで、多少頭をひねって考えれば、どうすれば使えるようになるかは分かるかと思います。
分からない方は、google先生に教えてもらいましょう。ggrksと書くと少し下品ですが…

これは皆さんへの宿題にしておきましょう^^)

何事も、Try & Error で試しながら、自分のものにしていって下さい。

それではまた来週お会いしましょう!

2011年4月26日火曜日

オーランチオキトリウムに関する記事

オーランチオキトリウムが、日本を産油国にする

2011年2月25日

2010年12月、「オーランチオキトリウム」という聞き慣れない生物が新聞やネットのニュースで大きな話題を呼んだ。これは、オイルを作る藻類の一種で、従来よりも10倍以上高いオイル生産能力を持つという。バイオ燃料はいったいどこまで実用化に近づいているのか? バイオ燃料を長年研究してきた、筑波大学大学院の渡邉信教授にうかがった。

燃料としてそのまま使えるオイルを作る「オーランチオキトリウム」




オーランチオキトリウムは、ラビリンチュラという従属栄養生物の一種。光合成はせず、有機物をエサとして取り入れる。

──オイル生産効率の高い藻類「オーランチオキトリウム」の新しい株を発見されたと2010年12月に発表されましたね。2010年4月の記事(ブルームバーグ)では、「ボトリオコッカス」を使った場合、燃料1リットル当たり約800円になってしまうとおっしゃっていましたが、研究でどういう進展があったのか教えていただけますか?

地上植物に比べて、藻類のバイオ燃料生産効率が高いことが広く知られるようになってきました。トウモロコシの場合は1ヘクタール当たり年間0.2トン、大豆は0.5トン、アブラヤシで6トン。これに対して、藻類のボトリオコッカスですと、最大で100トン以上にもなると試算されます。


──藻類は、他の作物に比べて圧倒的にオイル生産効率がよいのですね。

しかし、一番パフォーマンスがよい開放系のプール培養を仮定したとしても、藻類のボトリオコッカスから取れるオイルは1リットル当たり155円、閉鎖系のリアクター培養ですと800円にもなり、原油の数倍から10倍になってしまう。これでは事業として成立しません。生産効率を1桁は上げる必要がありました。




光合成を行って、炭化水素を産生するボトリオコッカス。

そのために取った方策は2つです。1つは、ボトリオコッカスの持っている能力を今の10倍に強化することで、遺伝子組換えや品種改良を行います。
もう1つは、ボトリオコッカス以外の優れた藻類を探索することです。
現在、オイルを作る藻類は20種類ほど知られていますが、炭化水素を作るのはボトリオコッカスくらいで、他の藻類はトリグリセリド、つまり中性脂肪を産生します。炭化水素であれば、それほど手間を掛けずに石油の代わりとして使えるのですが、トリグリセリドはそのままだと燃料として使えません。トリグリセリドをそのまま自動車に使おうとすれば、低温でエンジンの中で詰まったり、エンジンを錆びさせてしまったりする。せいぜいガソリンに1〜2%混ぜるといった使い方しかできないのです。


──トリグリセリドに水素を化合させて、軽油と同等にする技術も開発されています。こうした技術を使うことはできないのでしょうか?

そうした技術には多くの企業がチャレンジしており、有望な技術ではあると思います。しかし、変換のためにはエネルギーもかかりますし、安価な触媒も開発する必要があります。最初から炭化水素を作る藻類があれば、それに越したことはありません。


──ちょっと不思議なのですが、どうして炭化水素を作る生物がいるのでしょう? 生物にとって、炭化水素はあまり相性のよくない物質だという印象があるのですが。

それがそうでもないんですよ。例えば、私たち人間を含む生物にとって重要なステロール(コレステロールやステロイドホルモン等々)の前駆体(前段階の物質)は、炭化水素です。普通の生物は、炭化水素を貯め込まずにステロールへと変えてしまうのですが、ボトリオコッカスはこれを炭化水素のまま貯蔵します。この2つの代謝経路は途中までまったく同じで、たった1つの酵素の違いで分岐しているのです。


──しかし、どうして炭化水素を蓄積しようとするのでしょう? この炭化水素は何かの役に立つのでしょうか?

炭化水素を体内に蓄えることで、浮きやすくしているのではないかという説がありますね。よい例が深海サメです。サメは他の魚類と異なり、浮力を得るための浮袋がありません。では、どうやって浮力を得るのかといえば、肝臓にスクアレンという炭化水素を蓄え、これで浮力を調整しているのです。ちなみに肝油の材料というのがスクアレンですよ。スクアレンは、最終的にステロール系の物質に変換されて体内で使われるのですが、ボトリオコッカスの作る炭化水素、ボトリオコッセンは体内で使われることなく、最終的には体外に排出されます。

体外に排出するのは無駄なようですが、余分なエネルギーを外に逃がすことで体内バランスを調整する役割を果たしているのかもしれません。もっとも、これらはすべて仮説にすぎませんが。


オーランチオキトリウムとは、いったいどんな生物なのか?


──今回採取されたオーランチオキトリウムの株は、オイル生産効率がボトリオコッカスに比べて圧倒的に優れているということですね。

今回のオーランチオキトリウムは、オイルの生成量でいえばボトリオコッカスの3分の1ですが、増殖スピードが36倍と速いのが特長です。生産効率は従来に比べて単純計算で12倍になるわけです。


──このような株を採取できたのは、どうしてでしょう?

宝くじのように、たまたまそういう株を引き当てたと思っていらっしゃる方もいますね(笑)。それが科学と言えるのかと。しかし、闇雲にあちこちから採取すれば、よい株が採れるとは限りません。私たちも幸運を引き当てるために、周到な準備をしました。

藻類に関する論文を相当数調べたところ、オーランチオキトリウムの仲間がオイルを作るという報告がありました。それこそ乾燥重量で0.1%程度と極めて少ないながらも、先述のスクアレンを作るものがいるというのです。

そこで、論文から場所の当たりを付けて日本近海で150株採取したところ、今回の株が見つかったというわけです。勝率の低い賭でしたが、何とか当たりを引くことができました。株が見つかるまでに1年半かかりましたが、これは随分早い方でしょう。遺伝子組換えや品種改良だと、10年や20年かかったかもしれません。探索という手段には、これだけのスピードがあります。

オイルを作ることが知られている藻類は20種類ほどと述べましたが、学名の付けられている藻類だけでも4万種、調べられていないものを含めると藻類は全部で30万種から1000万種になるのではないかと言われています。


──オーランチオキトリウムは従属栄養、つまり光合成を行わず、有機物をエサにして呼吸するわけですよね。これは、藻類と言えるのでしょうか? 光合成を行うことが藻類の条件かと思っていたのですが。

オーランチオキトリウムは広い意味での藻類に含まれます。これは、進化系統から見るとよくわかります。クロロフィルaを持つ生物のうち、最も原始的なのがラン藻です。このラン藻を色素体として取り込み、緑藻類、紅藻類、灰色藻類の仲間が誕生しました。緑藻類を取り込んで生まれたのがミドリムシなど。紅藻類を取り込んだのが褐藻類、つまりコンブやワカメ、それに珪藻類の仲間です。

色素体を取り込んだ側の生物は、元々は色素体を持っていませんでした。コンブやワカメと近縁の(色素体を取り込まなかった)生物が進化して、ラビリンチュラ類という原生生物になりました。ラビリンチュラは、ストラメノパイルという藻類の一大分類群に属しています。藻類と一口にいっても、色素体を持っているもの、持っていないもの、持っていたけどなくして無色になったものなどが入り混じっています。

ラン藻は真正細菌(バクテリア)ですが、オーランチオキトリウムはバクテリアではありません。コンブやワカメに近いものをバクテリアとかカビとは言えないでしょう。




オーランチオキトリウムを培養している様子。


──藻類の分類は、ここ数十年で大きく変化しましたね。

DNAによる解析が進む前は、オーランチオキトリウムを含むラビリンチュラ類はカビやキノコ等の菌類の仲間にされていましたが、その当時からラビリンチュラは藻類ではないかという意見が出ていました。ラビリンチュラは生活環の中で長さの異なる2本の鞭毛を持つのですが、これはコンブやワカメの鞭毛をもつステージの細胞と形態が同じなのです。

ちなみに進化系統樹では、カビ/キノコはラビリンチュラより、ずっと人間に近いんですよ。


──今回採取されたのは、オーランチオキトリウムの「株」という表現をされていますが、これは新種ではないのでしょうか? 同じ種でオイルの生産効率が10倍も違うなんてことがあるんでしょうか?

オーランチオキトリウム属であることは確認しています(生物の分類は、上位から順に「界」「門」「綱」「目」「科」「属」「種」となる)。新種かどうかはさらに細かな検証が必要ですから、もう少し時間をください。

ただ、微生物の場合、同じ種でも特性は大きく異なります。ボトリオコッカスでいえば、オイルの生産量にしても乾燥重量当たり2%から80%くらいの開きがあります。大腸菌なんて、あれほど多様なのに全部同じ種ですよ。人間のように大型の生物になると同じ種での変異は小さくなりますが、微生物は同じ種でも幅が大きいのです。

有機排水をエサとして、オイルを生産する



──オイル生産効率の高いオーランチオキトリウムが採取されたことで、バイオ燃料の研究も一気に弾みが付きそうですね。
生産効率やコストはどれくらいでしょう? 光合成する藻類とは培養の仕方もまったく変わってくると思いますが。

その辺の話は、まだ先の段階ですね。光合成の藻類を使うにせよ従属栄養藻類にせよ、まだ研究室レベルのデータを元に推測しているに過ぎず、実規模でのデータがないのです。

これまではどんなにラフに計算をしたとしても、コスト的に絶対に実用化できませんでした。そこに高い潜在能力を持ったオーランチオキトリウムが見つかり、実用化できる可能性が見えてきたということです。

芝居を上演するためには、役者、舞台、脚本が必要です。これまでは役者が揃っていなかったけれども、ようやくスターになりうる素晴らしい役者が見つかった。こんなに素晴らしい役者がいるのだから舞台作りにみなさん投資してください、というのが今の段階です。

日本には優れた技術がありますから、頑張れば舞台を作っていけるでしょう。そのためにも採算が取れる仕組みをどう作るのか、という脚本作りが重要になってきます。


──どういう脚本を考えられているのでしょう? 光合成するボトリオコッカスと、従属栄養のオーランチオキトリウムを組み合わせたりするんでしょうか?

まず、この世界にある有機物がどうやって作られたかを考えてみましょう。それらは植物の光合成により、二酸化炭素と太陽光、水、無機塩類から作られました。そして、有機物が循環する過程では必ず人間が介在しています。その結果、有機物を含んだ排水、有機排水が家庭や工場から大量に出てきます。これをオーランチオキトリウムのエサとして利用しようというのが、私の考えです。

現在、下水等の有機排水を処理するためには、最初に固形物を沈殿させ、その後の一次処理水に活性汚泥というバクテリアの塊を投入しています。一次処理水には有機物が多く含まれていますから、活性汚泥の代わりにオーランチオキトリウムを投入すれば、オーランチオキトリウムが排水中の有機物をエサとして炭化水素を作ることになります。

オーランチオキトリウムが処理した後の二次処理水には、窒素とリンが大量に残っていますから、この二次処理水にボトリオコッカスを投入し、やはり炭化水素を作らせます。

炭化水素を抽出した後のオーランチオキトリウムやボトリオコッカスは、動物の飼料やメタン発酵に利用できるでしょう。



渡辺教授が提唱している、排水処理とオイル産生のシステム。オーランチオキトリウムとボトリオコッカスを組み合わせている。


──オーランチオキトリウムはどんな有機物でも分解できるんでしょうか?

オーランチオキトリウムには、セルロースを分解して増殖するものもいます。今後は、こうしたエサの多様性を探る基礎研究も進めていかなければなりません。排水の処理過程でできてくる余剰活性汚泥は少なく見積もっても4億トン以上ありますが、現在は燃やして灰にしコンクリートにまぜて使っています。


──有機排水を利用できれば理想的ですね!

これは特段新しい発想というわけではないんですよ。水処理プロセスに藻類生産を組み込んで統合すべきという考えは、10年以上前にアメリカのエネルギー省の報告書で提案されています。この分野に関して日本はあまりにも出遅れています。


──藻はどのように培養するのでしょう?

光合成をしないオーランチオキトリウムの場合は、地下に閉鎖系の培養環境を作るのがよいでしょう。地下なら冬場でも15〜20℃くらいで水温は安定しており、15℃なら6時間、20℃なら4時間で倍に増えます。オーランチオキトリウムには光を当てる必要がないため、広い面積が必要ありません。工場のすぐ横にオーランチオキトリウムの培養タンクを設置して、工場の排熱を利用するといった方法も使えそうです。現在、発酵微生物で使われているノウハウや設備をそのまま流用できますから、研究は加速度的に進むのではないでしょうか。

光合成するボトリオコッカスの場合は、休耕田のような開放系で培養するか、人工的に光を当てる閉鎖系で培養することになります。開放系はコストが少なくて済むというメリットの反面、他の微生物が混入するなど環境制御が難しいという問題点があります。一方の閉鎖系は、環境制御が簡単ですがコストがかかります。開放系のデメリットは、特殊な環境で生きるように藻を品種改良することで解決できるかもしれません。例えば、塩分濃度が海水の2倍という環境で生きられるようにすれば、他の微生物の混入を防げるでしょう。閉鎖系に関しても、使い捨てのソフトプラスチックバッグを使ってコストを下げる方法が研究されています。

ボトリオコッカスに関して言うと、開放系の可能性を試してみたいですね。実は、自然界でボトリオコッカスが大量発生することがあるのです。このメカニズムを解明できれば、休耕田を使って低コストでボトリオコッカスを培養できるかもしれません。




300リットルの培養槽で、ボトリオコッカスを培養しているところ。



バイオ燃料でエネルギーが無尽蔵の世界を実現する



──実用化の課題としては、どのようなものがありますか?

バイオ燃料を実用化するための舞台は、生産、収穫、抽出という3つのステージに分かれます。

生産での難関は「攪拌」(かくはん)、つまり藻を培養槽の中でかき混ぜることです。下手すると、全工程の半分以上のエネルギーが攪拌に費やされますから、ここでのエネルギー消費をいかに抑えるかが課題になります。

次の収穫も全工程の20〜40%のコストを消費すると言われています。凝集沈殿、遠心分離、フィルターなど、さまざまな手法がありますが、まだ実験室レベルでしか検証されていません。凝集沈殿なら投入した凝集剤をどう回収するか、遠心分離はエネルギーをどう抑えるか、フィルターはコストをどう下げるか。

最後の抽出にしても、実験室のように溶媒を使って単純に抽出するというわけにはいきません。溶媒を回収する必要があります。藻を乾燥させてオイルを抽出するとなると、そのためのエネルギーコストもかかります。

この辺りの技術開発を行うのは大学では無理ですから、産業界の協力が必要になります。


──こうした実用化の課題には、どの研究機関や企業も直面しているわけですね。アメリカでは、バイオ燃料のベンチャー企業に莫大な投資が行われて実用化を進めています。

昨年、アメリカのエネルギー省は"National Algal Biofuels Technology Roadmap"を発表しました。これは、さまざまな分野の学者を集めてワークショップを開催し、その議論をまとめたものです。とてもレベルの高い資料ですが、残念ながら日本ではこういうものを作ろうともしていません。

オーランチオキトリウムという、素晴らしい役者が登場したわけですから、きちんと脚本を練って、舞台を作っていかなけれ
ばなりません。そういう取り組みをしないとどうなると思いますか?


──中国やアメリカが買いに来る?

そう、大事な技術やノウハウが海外に流出してしまいます。


──アメリカは新しい技術に対する投資の仕方が大胆ですよね。100のベンチャーにまとめて投資して、そのうち1つが大成功すればいいという。

そういうやり方でいいんです。世界で消費されている原油が50億トン、1リットル当たり50円としたら、250兆円の市場がすでに存在するわけです。バイオ燃料は、ものすごくリターンの大きい世界なんですよ。

それは日本が産油国になるということだけではありません。世界のパワーバランスすら変える可能性を秘めています。


──エネルギー資源が特定の地域、国に偏るのではなく、遍在するということですね。

そういうことです。技術さえあれば、誰もがエネルギーを手に入れられるようになります。

私は、エネルギーが潤沢になることで、世界が抱える問題のかなりの部分を解決できるのではないかと考えています。人類をエネルギー資源の制約から解放する、これこそが、全人類が待ち望んでいるイノベーションではないでしょうか?