ITservice雄飛 プロモーションビデオ

2020年12月22日火曜日

楽天を偽装した詐欺メールを貰ったので晒すよ。

 ITervice雄飛です、おはようございます。

さて今日は!


朝っぱらから、詐欺サイト誘導メールを頂いたので、早速晒しますね。

楽天を装った詐欺サイトでした。


こんな感じ。色々と、著作上怖い感じ(自業自得)。


楽天の画像は、ご丁寧にも本家楽天から引っ張ってきている模様。
他のリンクは、当然ながら張りぼて自リンク。
強調表示の「支払方法を更新する」は、楽天ドメインに似せた、
独自ドメインサイトに繋がっている模様。

ここから、パスワードとクレカ情報を引き抜くんですね、判ります。


スマホで見た時から怪しさ満点でしたが、

パソコンで見るともっと怪しさ満点!

某外国語の自動生成文と思われる文章がびっしりです。  


添付HTMLの中身。やっぱりすごく怪しい。



やっぱり、間抜けですね。
自動生成文が、怪しい味を醸し出してますね。

うん、やっぱり犯罪は良くないよね。


2020年12月13日日曜日

VBAのComobjにて、「Rangeクラスの.Selectメソッドが失敗しました」で、少し悩んだ話

こんばんは、ITsiervice雄飛です。

今回は、久々にプログラミングの話題を。


LazarusとVBA(Excel)の話題になります。


ComObjから、ワークブックを呼び出し、シートを操作します。

そして、セレクトするんですが。


大雑把に記すと、下記の様な構文でエラーが。

WorkBook.WorkSheets[SheetNo].Select


ある、特定の条件下に於いて、「.Select」でエラーが発生します。

「Rangeクラスの.Selectメソッドが失敗しました」

と出ます。

エラーメッセージ

下記の青線がエラー箇所



自作ライブラリのバグなのか、ExcelのComobjのエラーなのか??

原因は判りませんでしたが。
下記で解決。

  Cells  :=  setWorkSheet.Cells[row,col];
  setLine := Cells.Borders[isBorder];

Cells変数にCellの座標を直に入れて、それを呼び出します。
(要はセレクトを辞める)。

無事、動きました。

めでたしめでたし。

2020年11月29日日曜日

「ELEV racing dream ZENKAIRACING F4バーチャルレース」に参加してきたよ

こんにちは、はたまたこんばんは、あるいは、おはようございます。


ITservice雄飛です。

タイトルの通りです。

ELEV racing dream」さんと、「ZENKAIRACING」さんが共催する、

「ELEV racing dream ZENKAIRACING F4バーチャルレース」に、
参戦してきました。

参戦する事の経緯は、こちらから。


さて、レース当日、11月22日。

緊張するのなんの。

半分以上、現役のドライバーさんなので、
皆さん速いのは承知の上で、僕が遅いのも承知の上。

あぁ、進入が遅くて追突されて迷惑かけないかなぁ、心配。

さて、先ずプラクティス(練習走行)。

緊張するのなんの。

で、案の定皆さん速いのなんの。

で、練習こなして予選もこなして。

結果は後ろから2番目。

まぁ、実力相応ですな…。


そして、決勝!

走ってきました!

が!
1周目、いきなりスピンかましてフロント傷つけました!
あぁ、最下位・・・。

4周当たりで、腕と足がへばってきて、震えるのなんの。
弱い根性と弱い集中力で、スピンだけは避けて何とか完走しました。

次、リバースグリッド!

順位は下から2番目になったので、2番手スタートです!

基本、後ろに行くほど、速い人ばかりになります・・・。

超絶プレッシャーです(笑)。

案の定、1コーナーで追突されました・・・。

あぁ、ごめんなさい、僕はやっぱり遅かった。。。

で、再び再開に返り咲き(?)只管走ります。

途中、スピンした何代以下をクリアーし、順位を上げます。

腕も足も悲鳴上げて震えてます。

他の人もきっとそうなのかな??

で、自分を鼓舞しつつ、何とかゴール!

終わってみれば、すっごく楽しかったです。

以下、私のオンボート映像です。

それでは!

ELEV racing dream ZENKAIRACING F4バーチャルレース 決勝1

オンボード映像



ELEV racing dream ZENKAIRACING F4バーチャルレース 決勝2

リバースグリッド オンボード映像





怪しい偽装アカウント(偽アマゾン)からメールが来たので晒すよ。

こんにちは、ITservice雄飛です。

最近は、というか、すっかり冬ですね。

というか、もう年末ですね。


そんな気配を感じさせない勢いの、緩い気温ですが。


さて、今日の本題。


タイトルの通りです。

ア〇な詐欺メールが飛び込んできたので晒します。

先ずは、当のメールをご覧あれ。


いかにも怪しい。タイトルも失礼だし、メールの中身が無い。

当日に更新して当日にすぐ支払えと。


添付ファイルの中身。

シンプルですな。細工も何も、自動加工も何も痕跡もない。

手作業で頑張って作ったんだろうね。




で、添付ファイルを慎重に開く。
リンクも何もデタラメ。
普通、アマゾン程のGAFAクラスの企業からのメールだったら、
自動送信で、日付もスクリプトで自動出力だろうよ、恐らく。
そもそもプライム使ってないので、知りませんが。
(多分、そもそもアマゾンはこんなメール寄こさない可能性が高い)
リンクは、貸HTMLスペースを使ったと思われる、全く無関係のサーバ。
そこに個人アカウントスペースが紐付けられていて、
そこに、怪しいサイトが仕込まれていると思われる

うん、凄く怪しいというか、やっぱり、駄目だよね、こういう犯罪は。

皆さんも、気を付けましょう。


それでは。

2020年11月23日月曜日

ちょっと変わった副業を始めた話

こんにちは、ITservice雄飛です。

副業を始めました。


皆さん、霊能力って信じますか?

信じなくて良いんですが、結論から書くと。

(霊能力は宗教ではないですので)


世の中には何でも何処でも怪しいのはあるので、

疑った方が何かと良いのではありますが。


特に見えないもの系は、疑って掛かって損はないです。

只、全否定VS肯定みたいな、宗教紛争は不毛ですけどね。


さて。

私、実は霊媒体質で霊感が子供のころからあり、

霊的な事(浄霊)とか気功とかをやっております。

実家の住んでいる所が古戦場跡で、出るんですけどね、ごく時々。


で、遭遇したり、お持ち帰りした不浄霊さんを浄化したりしてる訳です。


そして、最近になり、霊視が出来るようになり、

2年ほど前から、そういうご相談も受けていたりしました。


で、やっと本題。


どういう事するの?って話ですが。

あ、事前にお断り。

賭け事、訴訟、物理的問題(霊的要素以外)は、対応不可だったりします。

人は空飛べません、モノを手に持たずに動かせません、それはマジックで種ありですから。

賭け事等の争い事は、先を読むことは出来ません、不可能です。

さて。


どうやるの?ってお話。


私の場合、相談者さんの魂と守護霊を直接見ます。

なので、心を開いてくれることが大前提ではあるのですが。


もしかすると、脳波を読み取っているのかも知れない、科学的には。

良く判らないけど。


で、相談者さんにご許可を取った上で、守護霊さんと相談者さんの魂を見ます。

ご許可を取らないと、基本的には、先ずまともに見えない。

守護霊さんがアクセスを防ぐから(だと思っている)。


すると、先ず相談者さんの考えたことがそのままこちらに伝わる。

次に守護霊さんに、その言葉を問い合わせると、その問題の解(結論)が得られる。

そこで、その解が何故そうなるのかを、追いかけていきます。


守護霊、魂の浄化(強化)、(必要であれば)前世と対話し、

今ある問題の意義をお伝えする。

不浄霊等が付いている様であれば、浄化し天に返す。

相手がいる様であれば、相手の魂、守護霊とも、相談者様を介して意見調整する。

上記の過程を経ると、きれいに最初の結論にたどり着きます。


そんな感じでしょうか?


メール一通2千円からやっています。


ご興味ある方は、ご連絡いただければ、霊視や浄霊いたしますよ。


それでは。

2020年11月10日火曜日

拙作の 経歴書作成ソフトを全面的に見直している話

お疲れ様です。

本日二本目の投稿です。


色々と時間が出来てきて、体力的にもゆとりが出来てきたので。


僅々の課題だった、経歴書作成ソフトウェア「あぁ、だれか作って経歴書!」を、リメイクし、全面的に見直して作り直しています。


このソフトは公開しているんですが、一部にバグがあったようでm(__)m、それに気づいたのが、昨年末か今年に入ってからで。

ただ、このソフトは開発ソフトに「Delphi」という開発言語を当時使っていて、昨年末から今年に入った時には諸般の事情で「Delphi」が使えなくなってたという、笑えない事情があり。


そして、今年半ば、つい2か月ほど前に、Lazarusという環境で、Delphiで作成した当時のプログラムを移植可能な様、必要なライブラリを再構築出来ました。

そして、今月に入り時間も出来てきたので、急遽、移植とバグの修正に取り組んでおります。


やっと、ファイルの読み込みと保存、経歴書の出力が確認できた状態で、本丸のバグはこれからです。


本当に申し訳ないです…。



今月末中のUPを目指して、なるたけ時間を割いて開発しています。

それでは。

コンピュータ言語を作っているお話

お疲れ様です。

ITservice雄飛です。


今仕事で。

簡易コンピュータ言語を作っています。


まだ、変数はString型一つ、

While文とIf文、そしてそれらのネスト、

メッセージダイアログコマンド、

ファイルを開くダイアログコマンド、

ファイルオープンコマンド、

ファイルセーブコマンド、


を実装しただけの、まだ何もできない状態なんですが。

まだ、実装中です。


今回は、どうやってどうすれば、コンピュータ言語を作れるの?というお話。


今作っているのは、スクリプト言語になる予定の簡易言語です。

現時点では、言語を搭載したエディタからしか実行できませんが、最終的にはスクリプト化し、直接実行できるようにします。


何が目的?

JavaScriptとVBA、VBSを外部から呼び出し、疑似的に一つの言語として使えるようにします。

いわば、今作っている言語を土台として、それら外部の言語をラッピングし、独自言語の様に呼び出せる様にする訳です。

あぁ、道は遠い…。


さて。

どうやって実行させるの?


基本は、開発言語の機能を使います。

それらをラッピングし、あたかも自身の機能の様に呼び出せる様にします。


次に、実行順序。


実行手順書が必要になります。


IfやFor、それらのネストを感知し、それらを一度解釈します。

この順序で実行、ここで指示待ち、ここでループ、といった様に。


それらを説明書の様に詳しく順序だてて、自作言語が理解できる形に整形します。


そして整形が終わったら、その手順に基づいて、言語を走らせて、実行させます。


結局は、「手順書」が重要なんですね。


普通のプログラミングと同じで。

何事も、基本が大事だと思う、今日この頃です。


ハイ、完成にはまだほど遠いです…。

2020年10月29日木曜日

レース関係でつくばに行ってきた時のお話。

 ものすごく、お久しぶりです。

ITservice雄飛です。


投稿していない間に、色々ありまして。

今回の投稿は、ITの様でITじゃない分野にはなります。


ZENKAIRACING.COMさんという、レーシングシミュレータ屋さん(本物のモータースポーツもされています)のところにお邪魔致しまして。


で、訓練用の本物のレーシングシミュレータに乗せていただきました。

その上、ZENKAIRACING.COMさんが運営する、

e-SPort Raceにも出場させていただきました。


滅茶苦茶難しかったです。

シミュレータで乗せてもらったのは、コースはつくば2000。

車両はS-FJ。

タイムは1分6秒(基準タイムは1分フラット(0秒台))。

ハンドルが、とにかく重いのなんの。

ブレーキが、とにかく重いのなんの。

10分走って、完全にバテました。


そしてe-Sport Raceでは、現役のレーシングドライバーの方も走られていて、皆速いのなんの。


レースのコースは岡山国際サーキットで、僕が1分47秒で周回してたのに対し、皆42,3秒前後で周回してました。

事前の練習では45秒台だったんですが、ガチガチに緊張して、本番では2秒も下がりました。


そしてトップ集団は、39秒台で周回してました(!)

もちろん、僕は断トツの最下位です(汗)

しかし、滅茶苦茶楽しかった・・・。そして皆、強烈に速かった・・・。


こちらがそのe-Sport Raceで使われた仮想車両。






で、お世話になったので、ZENKAIRACING.COMさんのレースにも応援に行ってきました!

なんと(!)、社長自らハンドルを握られておりました!

こちらがその車両。S-FJっていうレーシングカーです






仮想車両も正確に再現されています。



そしたら、その上なんと!

ガレージが、僕が昔いたチームじゃないですか(!!)




僕がいたころは、2001年~2008年頃で、WindsGarageってチームだったんですが。

今は、SuperWindsって名前に変わりました。

そして、今は只のOBなんですが。


カテゴリも、FJ1600(フォーミュラジュニア1600)っていう、今は無いカテゴリ(公式には)なんですが。

(練習とか体験走行では、今でもFJは元気に走ってますよ?)


今は、S-FJ(スーパーフォーミュラジュニア)っていうカテゴリに移行しました。


FJは羽(ウイング)のないフォーミュラーカーなんですが。

S-FJは羽(ウイング)が前後についています。


FJのエンジンがスバル製の1600CCの水平対向エンジンに対して、

S-FJは、1500CCのホンダ製のVTECエンジンを積んでいます。


SーFJは乗った事が無いので判りませんが、FJに関しては、とても操作がシビアだったと記憶しています(間違っても他のレーシングカーやS-FJが簡単という意味ではない:むしろ、どれも難しい)。


さて、前置きが長くなりましたが。


先週の2020年10月25日(日)、S-FJつくば地方選手権の最終戦に行ってきました!


先ずは、昔スクール生時代に走ってた、つくば1000に行ってきました。

懐かしいね。



そして、筑波本コース(つくば2000)へ。

入場料が1000円。チケット買って、いざ。


丁度、S-FJの予選が始まってました。


懐かしい音、懐かしい匂い。

微妙に感動しました、数年ぶりに来て。

皆、速いなー。


予選が終わって、昔からいる懐かしいメンツの方々や、そうでない新しい方々、いろんな人がいました。


ロードスターレースが大盛況で、e-SPortからリアルモータースポーツに移行した人が沢山いるみたいでした。


そんな中、S-FJも10数台(確か16台位)が走ってて、久しぶりに盛況でした。




で、懐かしいメンツの方々や、昔お世話になった、ガレージの社長ともお会いできました。


今は本当に体力無くて、レース見に行ってきただけで体力使い果たしてしまい、帰路についてしまいましたが。


これから、e-Sport Raceという形ですが、色々活動することになると思います。

それに付随して、つくば界隈にも、数年ぶりに顔を出すことになると思います。


皆さんお疲れさまでした!


久しぶりにいい刺激を受けました!


そして!

次回のe-Sport Raceも、アナウンスがあったので頑張ります。

次回のコースは鈴鹿!

・・・皆、速いんだろうな・・・(汗)。


最下位でもなんでも、ブランク埋めるべく頑張ります!!

2020年8月4日火曜日

Kindle本を書いている話

こんにちは、ITservice雄飛です。
微妙に忙しい、今日この頃です。

今日も、よもやま話を。

今、片手間ではありますが、Kindle本を書いておりまして。

きっかけは、半年前に書いたKindle本がちょこちょこ売れ初めまして。
で、じゃぁ、もうちょっと本の本数増やそうかな、と思った次第です。

で、話は戻って。

私が最近主に使う言語は、Lazarus(FreePascal)なんですが。

これに関する日本語の情報が少ないのなんの。
大体、英語とかドイツ語とかが大半ですね、ググると。
コードは同じなので、多少文を翻訳できれば、ソース見て内容はわかるんですが。

更に、書籍はもっと少なくて、ドイツ語の分厚いのが1冊、Kindleで書かれた本が日本語で1冊。それだけかな?

分厚いドイツ語のは持ってます、因みにですが。(高かった)

更に、私がメインとして行う、(日本語での)VBA処理に関する文献はWeb、書籍共に皆無でして。


「じゃぁ、書こうか、試しに」

となった次第です。

内容としては、FreePascal(Lazarus)を扱える人自体が少ないと思われるので、プログラミング入門書と位置付けて、プログラミングやアルゴリズムのイロハから始まって、ハローワールドからVBAとComObj使ったサンプル作成、テーマを自由に決めて、その中から作品を作る、という章で終わる、という構成です。

昨日、夜な夜な書いていました。

さて、執筆終わるのにどれくらい時間かかるだろう?
結構なボリュームになりそうなので、時間は掛かると思います。

それではそれでは。


2020年8月3日月曜日

プログラミング技術だけ覚えても駄目な話

こんばんは、ITservice雄飛です。

最近は、自作のエディタの更新と。
本業と副業、共に忙しい今日この頃。

さて、本題。

今、プログラミングが(まだ)熱いというか、盛んですが。

以前、ツイッターの方で、非常にごく簡単なアンケート取ったんですが。

それで、反応を見て難しいなと思った感想を持った訳です。

何が難しい言って、プログラミングだけ覚えれば、それで良い、
そうすれば食べていけるんだろう、みたいなアンケート結果だったので。

結論を先に書くと。
「プログラミング」だけ覚えても、仕事にするのはとても難しい。

これでしょうか?

独立って意味ではないですよ?

なんで??

それは、基盤となる必須の基礎知識的な技能であって、
それを実現する、別の各種知識が必要になるからです。

簡単に図示するとこんな感じ。

・対象の業務に関する専門知識
・アルゴリズム構築技能(設計技術、構築技法)
・プログラミング(コーディング)技能


簡単に、大雑把に、図示しただけですが。
細かく書き出すともっとあります。

上記の技能をうまく作動させるために、
コミュニケーション能力も結構重要だったりします。


例えで、仮のやり取りで書きますね。

・お客様「会社の単純手作業を何とかしてくれないか?」
・受注者「どの様な作業でしょうか?お話をお伺い出来ますか?」
(お客様と受注者でやり取りを行い、受注者はヒアリングをする)

・受注者「AとBは自動化可能ですね。Cは難しいというか、自動化は危ないですね。」
・お客様「どれ位で出来るの?どこまで楽になるの?」
・受注者「お伺いしたお話の限り、AとBはエクセルVBAを使えば1時間です。」
・受注者「もっと早く数分で処理する事も可能ですが、その場合納期は嵩みます。」
・お客様「作業時間は掛かっても良いよ、急いでいるから、エクセルで良いよ。」
・受注者「このAとBのエクセル処理なら○○日で出来るでしょう。」
(ここの、見積もり納期の勘案は非常に重要だったりする。少しだけ多めに見積もる感じ)

・受注者「これを自動化して欲しい。」
・受注者「Aの処理とBの処理を、1時間以内で出来るVBAを書いてほしい。」
・作業者(プログラマ)「扱うサンプルデータはありますか?」
・作業者(プログラマ)「お客様の行っていた作業の工程教えていただけますか?」
・受注者「Aがこれで、Bがあれ。資料送ったよ。」
・受注者「お客様からヒアリングしたから、それを基にサンプル作って。」
・作業者(プログラマ)「ありがとうございます、早速取り掛かります。」
(ここでプログラマは、資料と睨めっこして、自動化の方策を書き出してアルゴリズムに落とす)
・〇日(納期○○日の半分が経過)

・作業者(プログラマ)「テスト版ですが出来ました。」
・作業者(プログラマ)「サンプルデータで動いているだけなので、保証は出来ません。」
・作業者(プログラマ)「実作業に近いデータは貰えますか?詳細詰めたいです。」
・受注者「交渉してくる。欲しい作業内容を詳しくお願い。」
・作業者(プログラマ)「Aは△の処理の際の文字の長さの揺れ幅が知りたいです。」
・作業者(プログラマ)「Bは□の処理の際のテキストのフォーマットを知りたいです。」
・作業者(プログラマ)「テストプログラムと資料送りました、これで大丈夫ですか?」
・受注者「ありがとう、交渉してくる。」


(ここで、お客様にテストプログラムを確認して貰い、詳細を詰める作業をする)
・受注者「この様な感じで進めております。テスト版ですが、ご意見お願いします。」
・お客様「あれとこれは良いね、ここは要らない、そこに作業経過が欲しい。」
・受注者「Bの作業の差し支えない空データは貰えますでしょうか?」
・お客様「良いよ、適当な数字と文字で良い?」
・お客様「ありがとうございます、その方が助かります。」


・作業者(プログラマ)「ありがとうございます、助かりました。作業に移ります。」
・受注者「納期通り終わりそう?」
・作業者(プログラマ)「テキストのフォーマットが判ったので大丈夫です。」
・作業者(プログラマ)「納期数日前に、客先でテストさせて貰えますか?」
・受注者「判った、お願いしとく。」

・作業者(プログラマ)「初めまして、□□と申します。」
・作業者(プログラマ)「納品前に動作を確認させていただきたく存じます。」
・お客様「どうやって使うの?」
  ~省略~
・お客様「良いね、でも時々止まるね。」
・作業者(プログラマ)「申し訳ございません、事前に確認出来て良かったです。」
・作業者(プログラマ)「今修正しました、どうでしょうか?」
・お客様「良いね、今度は何やっても大丈夫だね。」


上の例えは、私が一人でやっていた受託開発を、幾つか擬人化させて登場人物を増やし、架空の案件で例えてみました。


・先ず、絶対的に必要なのはコミュニケーション力です。
コミュ力が無いと、色々苦しみます。
書く言う私も、日々コミュニケーション力は試されています。
それだけでなく、交渉力も重要になってきたりします(私の場合)。


・次に必要なのは、アルゴリズム構築能力と、それの言語化能力です。
アルゴリズムというのは、動作原理とも言えるかと思います。
要は、モノが動く仕組みを、頭の中で構築する能力です。
そして、それを図と文章で記す能力。
これが出来て、初めてプログラミング作業に命が灯ります。

・業務専門知識
必須です。
仕事を受ける場合、プログラミング出来ればどの分野でも、という訳には行きません。
ではどうするのか?お客様は、その分野の専門家です。
要は、プログラマたる私はその分野の素人な訳です。
細かく聞いて、只管聞いて、覚えるしかありません。
実際、そのように仕事をした事もあります。

プログラミングだけ覚えても、コーダー(コードを書く人)になっただけです。
しかし、第一歩には違いはなく、そこで満足するのではなく。
常にどん欲に学習していかないといけない、と言う事になります。


逆に、貧欲に学習する人は、何をやっても成功するかと思います。

今回は、これにて以上。

2020年7月31日金曜日

ExcelVBAでShapes(画像)が所属するセルのRowを取得する

ITservice雄飛です。

ほんとにお久しぶりの投稿です。
今回は、Excel VBAを。

今、オブジェクト(シート上に貼り付けられた画像)のRowsを取得する関数を探していたんですが。

どうも、昔はあった様だけれども、現在は廃止になっている様で、無情にエラーが返って終了しました。

色々考えた末、セルのサイズも取得できること考えたら、それアルゴリズムに落とせば良いだけじゃん、、、という、一般的且つ、ごく普通の考えに至りました。

で、思いついたら即実装。
簡単ですね、WhileとIFと変数の加算減算だけなので。
例ではRowですが、取得する値を幾つか変えれば、Colにも対応可能ですね。

本番はLazarus(Pascal)からComObjで呼び出すので、これからそれを組みますが。

まぁ、消すには勿体ないので、ブログ記事にしました。
以下、こんな感じ、即興のテスト関数です。

※このサンプル関数では事前に、オブジェクト(Shapes)を選択(Select)している必要があります。


Function Return_Sharp_Rows(start_i As Long, end_i As Long) As Long

  Dim tp As Long '選択したオブジェクトのTop座標を格納
  Dim rw As Long 'RowsのTopの合計値を格納
  Dim rw2 As Long 'RowsのHeightの合計値を格納
  Dim i_1 As Long 'While開始位置
  Dim i_2 As Long 'While終了位置
  
  tp = Selection.ShapeRange.Top '選択されたオブジェクトのTop座標を取得
  rw = 0 'Row.Topsを初期化
  rw2 = 0 'Row.Heightsを初期化
  i_1 = start_i '開始位置を引数から代入
  i_2 = end_i '終了位置を引数から代入
  Return_Sharp_Rows = -1 '検索にヒットしなかった場合の暫定値設定
  While i_1 < i_2 'While文開始
   rw = rw + Cells(i_1, 1).Top  'Row.Topsを代入
   rw2 = rw2 + Cells(i_1, 1).Height  'Row.Heightsを代入
   If ((rw <= tp) And (rw2 >= tp)) Or (rw = tp) Then 'オブジェクトの座標をセルの数値と比較し検証する
     Return_Sharp_Rows = i_1 '一致した場合、戻り値にセルのRow(i_1)を代入
     i_2 = i_1 '開始位置と終了位置を同一にし、While文を終了させる
   End If
   i_1 = i_1 + 1 'Rowを一つ下に移す(i_1を加算する)
  Wend
End Function

呼び出すときはこうします。例です。
Sub Get_Shapes_CellRow()
 Dim i As Integer
 i = Return_Sharp_Rows(1, 20)
 MsgBox Str(i)
End Sub

以上。
Excelって便利ですね。