ぼくLog

子持ち、車持ち、マンション持ちの僕の日常を綴ります。車と、ラクをしたい一心で覚えたエクセルVBAを中心になりそうです。

やっぱりソフトバンク孫さんは健在!ARM買収

ソフトバンクの大型買収のニュースが出てきました。

ソフトバンク 半導体開発のARMを買収へ | NHKニュース


孫さんの次なる買収の予想の範囲内!?

アリババやスーパーセルの株式のキャッシュ化という動きをしていたので、次なる買収が出てくることは予見されていたところです。また、孫さんが示していたソフトバンクの方向性から考えれば、ARMの買収は決して文脈から逸れたものでないと言えます。
そこら辺に関してはこちらの記事をご参照ください。

yt4u.hatenablog.com

ただ、改めて具体的に出てくるとインパクトありますね。7月18日時点の株価を基準にすると約43%のプレミアムを乗せ、買収総額は3.3兆円。日本企業による買収案件では過去最大の規模。

次なる買収がAIのコアたる「頭脳」に関する企業だろうとは予想されました。ただスプリント然りで、ある程度リソースは持っているもののやや難アリな会社に割安投資するのかなと思っていました。

ところが出てきたのはARMというピカピカの優良企業。しかも相当なプレミアムを乗せた買収金額。一気に本丸を攻めてきた感じで、孫さんの意気込みの強さを感じずにはいられません。


ARM買収とニケシュ・アローラの退任との関係は?

ただ、ちょっと気になるのは先日、突然の退任となったニケシュ・アローラとARM買収の関係です。

ニケシュの退任には、調査の手が回っている利益相反に関することが絡んでいるだろうとは考えられるものの、タイミング的にはARM買収に関して孫さんとの確執が発生していた可能性も否定できません。

もしそうだとしたら、ニケシュはARM買収に後ろ向きだったということになりますし、その後ろ向きにならざるを得ない事情が何なのかが気になるところです。

ARM買収に関して、孫さんとニケシュに確執があった、ニケシュはARM買収に後ろ向きだった、というのは想像以外の何物でもありませんが、ひとつのシナリオとして頭の片隅に入れておいた方がいいのかもしれませんね。


ソフトバンクからはますます目が離せない

ここまでの流れをぼくの視点で簡単にまとめるこうなります。

  • ソフトバンクの強みは国内通信事業のキャッシュ創出力であり、それを基に孫さんはスプリントの買収に打って出た
  • ただ、Tモバイルの買収とセットで考えていたものの米当局の認可が下りず出鼻を挫かれた
  • なのでやや難アリなスプリントの再建に注力せざるを得なくなった
  • スプリント再建も当初は軌道に乗らず孫さん意気消沈。そのためニケシュ・アローラへの社長禅譲を考えた
  • スプリントの契約者数が伸び始め、リース・ファイナンスの活用でスプリントの資金調達にもある程度目処がついてきた
  • スプリント再建に目処がついてきたことで、シンギュラリティに向けて頭脳の取得を実行に移すこととした。それと伴に孫さんは社長職の継続を決意した

孫さんがスプリントの再建に手を焼いているうちは次なる大型買収がないだろうとは考えられていました。

なのでARMの大型買収が出てきたということは、スプリント再建に目処がついたことを意味すると考えるのが自然かと思います。

スプリントのようなカネ食い虫と違って、ARMは既に利益を生み出している体質です。買収にあたってプレミアム払いすぎじゃないかという懸念は残るものの、ソフトバンクへの利益寄与が容易に想定されることは非常に安心感がありあす。

また、今回の買収に関してロイターによると、孫さんは「社債保有者は買い増す最高のチャンスだ」と言っているそうです。

文面通り受け取るのであれば、ARM買収以降は社債保有者が懸念するような大型買収による財務悪化イベントが当面は発生しない、ということになります。

ARMはカネを食うわけでもないですし、当面大型買収がないのだとすれば、ソフトバンクの株式保有者、社債保有者の双方にとって腰を据えて保有することが出来る、と言えそうですね。

沖縄旅行の事前準備|アクティビティ編

今年の夏は沖縄旅行だ!

ということで、今年はぼくの家族と兄弟家族、そして親とともに沖縄に行ってきます。

なかなかの大人数でちょっとしたツアー状態。だから、あらかじめ予定を立てておかないと当日まったく身動きが取れなくなってしまう懸念があります。

そこで、スケジュールを立てる前段階として、沖縄に行ったらやりたいことをピックアップしてみます。大人数で老若男女いるということ、そして小さい子どももいる、ということと宿泊ホテルが恩納村にあるということが前提となっていますので、あらかじめご了承ください。

今回はアクティビティ編。


シュノーケリング

やっぱり透明度の高い綺麗な海を満喫したいですよね。

最高に満喫したいのであればダイビングの右に出るものはないのではないでしょうか。透き通る海に抱かれて、普段は見れない海の表情を、そして海中の神秘をまじかに見ることができ、自分がまるで魚にでもなったような気分にもなれる。だけど、ぼくはダイビング未経験(汗) 子どもにもちょっと早すぎますね。

お手軽に綺麗な海を体感できて、子どもも一緒に楽しめるとなれば、シュノーケリングは最適です。

沖縄のシュノーケリングポイントはいくつかありますが、青の洞窟、慶良間諸島の2択といったところでしょうか。


青の洞窟

沖縄本島の中央部に位置する恩納村の真栄田岬にあります。那覇市内から車で1時間強、恩納村には数多くのリゾートホテルがありますが、そこからだと最大30分程度で行ける場所です。

珊瑚が化石化してできた琉球石灰岩が海の波によって浸食され出来上がった海中洞窟。そこに太陽光のうち海の中を通過してくることができた青の光が集まることで青の洞窟という神秘が形作られています。

沖縄本島の主要エリアからのアクセスの良さ、設備の充実度合、青の洞窟という神秘性から、沖縄でシュノーケリングといえば、真っ先に候補に挙がるところです。

真栄田岬公式HPもありますので、行くときに事前に海の状況を確認できるのもいいですね。


慶良間諸島

慶良間(ケラマ)諸島は主に、座間味・渡嘉敷エリアとチービシ環礁エリアがあります。

座間味・渡嘉敷エリアは、慶良間諸島の中でも抜群の透明度を誇るエリア。「ケラマブルー」と呼ばれる透明度が高く、かつ鮮やかな海を堪能できます。

ただ難点はアクセスの悪さ。那覇から船で1時間弱かかります。車移動の1時間と船の1時間はまったく別物。船酔いが心配です。特に小さい子どもがいると気を遣うところです。


チービシは、ナガンヌ島・クエフ島・神山島の3島を含む島の総称です。海の透明度も十分高く、那覇から船で20分程度で着きますので、子ども連れには現実的なシュノーケリングスポットですね。運がいいとウミガメにも出会えます。


シーカヤック

沖縄でカヤックといえば、マングローブカヤックかシー・カヤックの2択。

日本の本島では見られないマングローブを堪能できるマングローブカヤックも捨てがたいですが、夏に行くのであればカヤックだけでなくシュノーケルもセットで楽しめるシー・カヤックに軍配か。

恩納村発でカヤックを漕いで10~20分でやどかり島に行き、そこでシュノーケルを楽しむプランなどが充実しているので、是非とも旅程に組み込みたいころです。


まとめ

沖縄のアクティビティといえば、なんと言っても海!

ということでシュノーケルが中心になってしまいましたが、行ってみたいやってみたいアクティビティをピックアップしてみました。

Timer関数を使ったストップウォッチ|エクセルVBA

f:id:yt4u:20160704215724j:plain

エクセルVBAで経過時間を計測するには2つ。

  • Timer関数を使う
  • Windows API の timeGetTime を使う

Windows API を使ったストップウォッチはこちらの記事をご参照ください。

yt4u.hatenablog.com


今回はTimer関数を使ったストップウォッチを作ってみました。

Timer関数とは?

午前 0 時からの経過秒数を表す単精度浮動小数点数型 (Single) の値を返します。
Microsoft Windows では、Timer 関数は秒の小数部を返します。Macintosh では、タイマー刻みは 1 秒です。

Windowsであればミリ秒の計測も可能です。ただ、APIのtimeGetTimeと比較すると計測の正確性がやや劣るとの指摘が散見されます。


実行用標準モジュールを用意

さっそく試してみます。

標準モジュール「blMdlTimer」

Option Explicit

Sub サンプル1()
  Const cRow            As Long = 1000
  Const cCol            As Long = 100
  Dim dblTimer          As Double
  Dim lngR              As Long
  Dim lngC              As Long
 
  dblTimer = Timer
 
  With ActiveSheet
 
    For lngR = 1 To cRow
    
      For lngC = 1 To cCol
      
        .Cells(lngR, lngC).Value = lngR * lngC
      
      Next lngC
    
    Next lngR
  
  End With
  
  
  MsgBox Timer - dblTimer
  

End Sub

最初に、処理開始時の時間をdblTimerに格納します。

その後、1~1,000行、1~100列に適当な数字を入れるようにしています(この処理自体はなんの意味もありません)。

最後に、その時点の時間から処理開始時点の時間を差し引くことで、処理に掛かった時間を取得しています(ここではメッセージボックスで表示しています)。


はい、以上です。

そうなんです。Timer関数は非常にお手軽に使える関数なんですね。APIのtimerGetTimeと比べると圧倒的に簡単に使えます。

時間計測の正確性にやや難ありなんて話もありますが、ミリ秒単位のシビアは時間計測が必要でなければTimer関数で十分なんですね。


ニケシュ・アローラの退任劇きっかけでソフトバンクの株主総会の動画見たら孫さんすげぇーってなった話

孫さんの後継候補だったにも関わらず突然の退任となったニケシュ・アローラに対してSECが調査に乗り出してるとか。

www.nikkei.com

退任から遡ること今年の1月、とある投資家グループからアローラ氏の適性や利益相反を問う書簡がソフトバンクに送り付けられていて、6月20日にソフトバンクの特別調査委員会は「シロ」判定を下したわけですが、その翌日にアローラ氏の退任発表。

代表取締役の異動(退任)に関するお知らせ | プレスリリース | ニュース | 企業・IR | ソフトバンクグループ

翌22日の第36回定時株主総会には代表取締役副社長として席に座るものとして事前に株主に通知が行っていた中での退任劇だったので、誰しもが「あやしすぎる、、、」と思わざるを得ないところ。アローラ氏がシニア・アドバイザーを務めるシルバーレイクというPEを手掛ける会社との関係を指摘する報道なんかもあったりしますが、真相はなんともわからないところであります。

・・・といった中で、なんとなくソフトバンク株主総会の動画を見始めたら、面白すぎて孫さんすげぇーってなった話です。


ひとまず動画はこちらです

第36回定時株主総会 | ソフトバンク

動画の長さは2時間23分と映画一本分以上!実際の開催時間は2時間51分で過去最長を記録したとか。

冒頭、ニケシュのお別れの挨拶から始まります。

ソフトバンクは素晴らしかった、と。

退任理由の詳細について触れられることはなかったわけですが、挨拶が終わって立ち去るニケシュに孫社長が小さい声で「サンキュ、ニケシュ」と呟く横顔にはなんとも言えない哀愁を漂わせています。

朝起きたらニケシュに電話して、夜寝る前にもニケシュに電話して、っていうオシドリ夫婦生活を送っていたにも関わらず別れなくてはならなくなったわけですから、思うところがたくさんあるのでしょう。


そこから足もとのソフトバンクグループの説明に入ります。

国内通信事業に関して特筆すべきはフリーCF創出力の高さ。

f:id:yt4u:20160701235118j:plain

事業セグメントがFY15Q3に少し変更になったので過去との比較がやりくくスライドの通りFY14との比較しか見れないわけですが、国内通信事業は安定した収入がある一方で、設備投資が一巡したことから利益が出やすい体質になってきている、という流れは変わらないようです。

この安定収益源があるから孫さんは傍目から見ると博打にも映る大型投資ができるわけですね。


次にスプリント。

これまでみんなの席を回ってゴミを回収してくれていた清掃員に辞めてもらって各自でゴミ箱に捨てに行くようにしたとか、最初からそうしてろよ的な取り組みを積み重ねてコスト削減を進めたことも相まって営業利益は黒字化。純利益の黒字化も近い。

f:id:yt4u:20160702002847j:plain

Tモバイル買収失敗で全米進出の出鼻を挫かれて一時意気消沈していた孫さんですが、やっと光が見えてきた。おかげで孫さんの頭のテカリも絶賛回復中。


次にヤフー、ペッパーに触れたのち、アリババに始まる投資実績へ。snapdealなどいくつか取り上げてその絶大な伸び具合を、いかにもソフトバンクらしい絶対値を示さず伸び率だけを強調するスライドでご紹介。

とはいえ、こうした過去の投資があったからこそ、この6月に立て続けに発表していた投資資産の資金化という果実が得られたわけです。

f:id:yt4u:20160702002851j:plain

ガンホー株の売却なんかも騒がれていましたけど、こうしてみると小粒ですね。

これまでアリババ株なんて特にそうですけど、含み益すげぇー、でも売ることないんでしょ、なら含みは含みでしかないよね、ってちょっと冷めた目で見る向きもあったわけです。でも、こうして実際にキャッシュ化したとなると見る目も変わりますね。

注目されるのは今回キャッシュ化した2兆円弱を何に使うのか? そもそも'16年3月末時点で約2.5兆円の現預金を持っていたところに2兆円追加で都合4.5兆円。何もしないはずもないですが、今のところ特にアナウンスもないのでどうなるのかは分かりません。債務の返済に回すのか、はたまた大型投資が出てくるのか。

ニケシュの退任発表と同時にリリースされた顧問就任のリリースを見ると、「いくつかのクレイジーな構想も実現したい」って孫さん言ってますので、なーんか飛び出してくるんでしょうね。


そのクレイジーなのってナニ?ってことになると、次に続く「Singularity(シンギュラリティ)」というのがヒントになるのでしょうか。

f:id:yt4u:20160702221327j:plain

「人類史上最大のパラダイムシフト」

・・・かなり気合を感じる入り方です。

そして孫さんは「この『シンギュラリティ』が何かご存知ですか?」。
会場に問いかけます。

およそ3%の人の手が挙がったようですが、残念ながらぼくは知りませんでした(汗)


ここでの「シンギュラリティ」は技術的特異点のことで、それが何かというと、、、

f:id:yt4u:20160702221643j:plain

そう、人工知能が全人類知能を超えるときを指しています。

孫さんは言います。「Google検索などに代表されるように知識の面では既に人間を超え始めている。今度は知恵の面でも人間を超え始めるんです。」

ここ数年、ロボットだ、自動運転だ、VRだ、ディープラーニングだとなんだと、非常に盛んになってきています。そういったAIといったものに未来を感じる機会が多くなってきてはいますが、その知能水準は言ってしまえばまだ小鳥程度といった印象です。まだまだ人間の知能水準には到底及ばない。

それが近い将来、人間の知能、それも人間ひとりの知能だけでなく、全人類の知能を凌駕する人工知能が形成されるというのです。

このシンギュラリティを提唱する人の中で有名なのがレイ・カーツワイル*1。彼は、人工知能が全人類知能を超えるとき、つまりシンギュラリティは2045年に来ると予測しているようです。その世界は、たとえばヒトの頭脳はすべてデジタル化可能、ヒトの臓器はナノロボットで代替可能になっていてヒトの「死」がなくなっていたり、完全なVRの世界にヒトが存在するとか。完全にマトリックスとかターミネーターの世界ですね。本当にそんなときは来るのでしょうか?


孫さんは来ると信じています。そして、人工知能と人類が共存する世界を作るために人生を捧げると。


そして、社長続投を決意した理由もここにあると語ります。

「60歳の誕生日パーティーで、乾杯のあと『明日からニケシュが社長になる』。そういって皆を驚かせるつもりだった。でもシンギュラリティを前にして、もう少し社長でいたいという妙な欲が出てきた。それでニケシュに『申し訳ない』と伝えた。」と。

突然の退任劇は、ニケシュ・アローラに起因する部分もあるのかもしれませんが、孫さんの心変わりの要因の方がより強そうです。そして孫さんは社長を「最低でも5年、長くて10年」やるようです。つまり69歳まで。

およそ1年前、スプリントの再建が完了したら社長の座を譲ることを示唆していたことを思うと、かなり話が変わってきてますね。

スプリントを再建したら孫さんは引退ではなかったのか?のちの質疑応答でも明らかになるのですが、シンギュラリティと通信の関係について孫さんは、通信網は人間でいう神経なんだといいます。つまり人工知能は単独で存在するのではなく、あらゆるものに神経を張り巡らせるかの如く繋がって存在することになるので、その繋がりを支える通信網が重要なんだと。

こうなると今でこそスプリントの再建に注力しているわけですが、孫さんが見ているのはそれよりももっと先なんだということを思い知らされます。ソフトバンクもスプリントも通信業界でトップに立つとかが目的ではなく、通信はあくまでも手段に過ぎないわけです。

でも、そうなると今のソフトバンクグループに足りないのは何なのか?それは「AI」ということになるのでしょうか。つまり、神経はあるけど頭脳がない。だとすれば、孫さんが次に買収をするとすれば、その「AI」関係のところになるのかもしれませんね。

しかし、孫さんは尽きることがないですね。10年後にはまた「やっぱり社長を続ける」と言ってそうな気がします。株主総会の席上、日本電産の永守会長も言い放っています。

「孫さんは、ホラとウソが混ざったような人間だ」
「69歳になったらまた10年やるって言いますよ」


トコトンやって、そしていよいよ孫さんが社長を引退するとなったとき、こう言うのかもしれません。

「明日から社長はpepperです。でもこのpepperには僕がインストールされています。」




孫さんの目指すところが果てしなすぎて、ぼくはただただ指を咥えて見てしまうだけですが、次の2冊を読むと孫さんの行動力や発想の源泉に触れることができます。そして間違いなくモチベーション上がります(笑)

志高く 孫正義正伝 新版 (実業之日本社文庫)

志高く 孫正義正伝 新版 (実業之日本社文庫)

孫正義の焦燥 俺はまだ100分の1も成し遂げていない

孫正義の焦燥 俺はまだ100分の1も成し遂げていない


株主総会の孫さんのプレゼン。新商品発表会とか新ビジョン発表の場とは違って、盛り上がるような場の雰囲気ではないのですが、孫さんのしゃべり口、間の取り方、テンポのつけ方は流石。ぐいぐい惹き込まれていきます。プレゼンの心の持ち方あたりは、この本が参考になります。

孫正義 奇跡のプレゼン (単行本)

孫正義 奇跡のプレゼン (単行本)

*1:レイ・カーツワイルは、ひと昔前はそれこそ変人扱いだったようですが、2012年にGoolgeに入社。現在はAI開発の総指揮を執っているようです。

クラスとCollectionを使ったストップウォッチ|エクセルVBA

f:id:yt4u:20160629211204j:plain

エクセルVBAで経過時間を計測するには2つ。

  • Timer関数を使う
  • Windows API の timeGetTime を使う

Timer関数を使ったストップウォッチはこちらの記事をご参照ください。

yt4u.hatenablog.com


今回は、Windows API の timeGetTime を使って、クラスとCollectionを活用したストップウォッチを作ってみました。


なお、Collectionの使い勝手いいんですよ、っていう話はこちらの記事をご参照ください。

yt4u.hatenablog.com


APIを用意

まず、APIを記述するための標準モジュールを用意。

ここでは、その標準モジュールを「blAPI」とする。
("bl"はBokuLogから取ったものです)

標準モジュール「blMdlAPI」

Declare Function timeGetTime Lib "winmm.dll" () As Long


クラスを用意

ストップウォッチ機能を持ったクラスを用意します。

ここでは、そのクラスモジュールを「blClsStopWatch」とする。

クラスモジュール「blClsStopWatch」

Option Explicit

Private mlngStartTime             As Long             'スタートした時間(ミリ秒)
Private mlngQuitTime              As Long             'ストップした時間(ミリ秒)
Private mlngRap                   As Long             'ラップタイム(ミリ秒)
Private mcolRaps                  As Collection       'ラップタイム(秒)コレクション
Private Const mcdblConvRatio      As Double = 0.001   'ミリ秒を秒に変換するための掛け目


Private Sub Class_Initialize()

  Set mcolRaps = New Collection

End Sub


Private Sub Class_Terminate()

  Set mcolRaps = Nothing
  
End Sub


'=========================================================
'スタート時間
'=========================================================
Public Sub Start()

  mlngStartTime = timeGetTime

End Sub


'=========================================================
'ラップタイム
'Rap を返すとともにラップタイムコレクションに格納
'=========================================================
Public Function Rap() As Double
  Dim dblRap            As Double

  If mcolRaps.Count = 0 Then
  
    mlngRap = timeGetTime
  
    dblRap = ((mlngRap - mlngStartTime) * mcdblConvRatio)
             
  Else
      
    dblRap = ((timeGetTime - mlngRap) * mcdblConvRatio)
              
    mlngRap = timeGetTime
              
  End If

  mcolRaps.Add dblRap

  Rap = dblRap

End Function


'=========================================================
'ストップ時間
'=========================================================
Public Sub Quit()

  mlngQuitTime = timeGetTime
  
  mcolRaps.Add (mlngQuitTime - mlngRap) * mcdblConvRatio
   
End Sub


'=========================================================
'経過時間(ミリ秒)
'=========================================================
Public Property Get ProcessingTime() As Double

  ProcessingTime = (mlngQuitTime - mlngStartTime) * mcdblConvRatio

End Property


'=========================================================
'ラップタイムコレクションを返す
'=========================================================
Public Property Get Raps() As Collection

  Set Raps = mcolRaps

End Property

これでストップウォッチクラスが完成です。


実行用標準モジュールを用意

では、作ったストップウォッチクラスの動きを確認してみます。

標準モジュール「blMdlTest」を用意します。

標準モジュール「blMdlTest」

Sub testStopWatch()
  Dim stopWatch         As blClsStopWatch
  Dim colRaps           As Collection
  Dim lngR              As Long
  
  Set stopWatch = New blClsStopWatch
  
  stopWatch.Start
    
  MsgBox stopWatch.Rap
  MsgBox stopWatch.Rap
  MsgBox stopWatch.Rap
  MsgBox stopWatch.Rap
  MsgBox stopWatch.Rap
    
  stopWatch.Quit
  
  Debug.Print stopWatch.ProcessingTime

  
  Set colRaps = stopWatch.Raps
  
  For lngR = 1 To colRaps.Count
  
    ActiveSheet.Cells(lngR, 1).Value = colRaps(lngR)
  
  Next

  Set stopWatch = Nothing
  Set colRaps = Nothing

End Sub

これを実行すると、次々にラップタイムがメッセージボックスに表示されていきます。


最初のメッセージボックスは、「Start」してすぐなのでほぼ0秒と表示されます。

その次からは、前のメッセージボックスが表示されてから、次のメッセージボックスが表示されるまでの時間が表示されます。なので、前のメッセージボックスをじっくり見ていた場合、その時間も加算されていくことになります。

「Quit」でストップウォッチを止めて、そのあと「ProcessingTime」で総経過時間を取得。

あわせて、ラップタイムコレクションを取得し、アクティブシートに出力しています。


ストップウォッチはいつでも使えるようにしておく便利です

時間を計りたいっていう場面は多くはないかもしれません。
(少なくともサンプルコードのようなただラップタイムを表示するだけという使い方はまずないですよね)

とはいえ、処理するデータ量や計算量が多くてちょっと時間が掛かりすぎるなー、っていうときがあると思います。そのとき、どこで時間が掛かっているのかを調べるために、こうしたストップウォッチ機能をいつでも使えるようにしておくと便利だと思います。


ストップウォッチを作るにあたってクラスを使いましたが、クラスって何?というときはこちらの本がオススメです。

そこが知りたい!Excel VBAプロの技 Excel97/2000/2002/2003対応!

そこが知りたい!Excel VBAプロの技 Excel97/2000/2002/2003対応!

エクセルVBAのクラスについて触れているサイトって数少なく、理解しようにも情報が不足しています。それだけでなく、書籍でもクラスに触れているものってあまりないんですよね。その点、この本はクラスを扱う数少ない本です。VBAを書くにあたって検索すれば大体のことが分かるこのご時世、わざわざ指南書を買うことは基本的にぼくはしていませんでしたが、この本は別でした。クラス以外でも内容が充実していて、ぼくが曖昧な理解でコードを書いていたことを反省させられました。2003年発売の本ですが、今でも十分通じます。