[PR]今日のニュースは
「Infoseek モバイル」

ホームページへ戻る | ページマップ | [P.9](ページ末尾) | [常に一つ前へ戻る]
手元原本最新未UP(見れません) | 更新履歴 | メール
←私用につき見れません sory japanese only なんちゃって
file:///c:\h\ht\livedoor\VBAMacro.htm
なお以下の文は階層構造化記法(仮称)で書いてます。(参考) 文脈や構造に不徹底なところもあります。 この文章については、未だ、階層構造化様式を摘要していません。 ある程度追加変更等が落ち着いた段階で以下の処理で摘要します。 まだ、動作がおかしいですが、今後少しづつ改良する予定です。 自動階層構造化VBAマクロ使用法 [+]概略説明 読み飛ばし可、お急ぎの方、次項、操作法へ まずタブでもって階層化したテキスト文書をエディター等で作ります。 [+](EXCELで作っても可:実はここが最大のミソ(後述)) [-]EXCELで作る場合はセルを一つづつ階層毎にずらします。 [-]タブを使って階層化して書いたテキスト文書の、 [-]そのTOP部分に[+]を付加し、 [-]その下の階層に[-]を付加するか(最初の行以外は省略も可)、 [-]下の階層行の何れかに先頭にスペースがあると誤動作します(途中は可) [-]更に下の階層を持つものは[+]を付加する。 [-][+][-]を自動で付加可能なエディター(VIVI)もあります。 [-]行内はスペースで空けても良いが先頭以外のタブは禁止。 [-]一つの文で[+]の数は一応75が最大です。(マクロソースで変更可能) [+]上記テキストをEXCELに貼付けます。 [-]タブでもって階層化したテキスト文書はEXCELのセル対応になっています。 [-]言い換えると、 [+]タブでもって階層化したテキスト文書はEXCELと互換性があります。 [-](余談)ここは分からなくても良い。 [-]而して、HTMLとも互換性がとれる。 [-]HTML作成にEXCELのVBAマクロの利用が可能となる。 [-]極論すると、日本語処理・文書作成・ホームページ作成等を [-]自動化、AI化することも可能。 [-]ここの例以外にも様々な応用が可能。 [-]ここが分かれば卒業。 [-]添付のEXCEL「frammacro.xls」(仮の名前)には、 [-]VBAマクロが入っています。 [-]sheet1のTOPにエディター側でコピー、EXCEL側で貼付けします。 [-]ここでの例では既に、貼付けてあります。 [+]EXCEL VBAマクロを実行する。(CTRL + s) [-]Book1にまずHTMLのTOP部分をジェネレートし、次に、 [-]sheet1のTOPから順番にそのまま上書きで、 [-]HTML文+JAVAScriptに変換して行きます。 [-]次に、sheet1をBook1のTOP部分の次に貼付けて、 [-]末尾部分がジェネレートされます。 [-]Book1にHTML文が完成し、 [-]「nnform1ex0.htm」というファイル名で保存されます。(デホルトで変更可) [-]「nnform1ex0.htm」の0の部分を1〜9、ABCDE..等と変えると良い。 [-]別のファイル名では現在対応していませんが、する予定です。 [-]sheet1上の変換だけを試験的にCTRL+aで実行することも可能です。 [+]HTML文の起動。 [-]「nnform1ex0.htm」を起動しても表示されません。 [-]他に「EXPFRAMex0.htm」というファイルを読み出し、 [-]同じディレクトリー(ホルダー)に保存します。 [-]「EXPFRAMex0.htm」は「nnform1ex0.htm」を作成後自動生成されます。 [-]「EXPFRAMex0.htm」はフレームで、「nnform1ex0.htm」は、 [-]そのフレーム内でのみ動きます。単独では動きません。 [-]次に「EXPFRAMex0.htm」を起動します。 [-]すると、やっと目的の画面が出ます。 [-]ブラウザでエクスプローラのように階層を開け閉めできるようになります。 [-]左右の窓は、左側を表題部として直前の状態を保持可能です。 [-]左右の窓は、片方不要であれば、位置をずらして閉じることもできます。 [-]右の窓は、現在加工して表示しているものもあります。 [-]位置は最初から「EXPFRAMex0.htm」のソース上でパーセンテージで変更も可能です。 [-]なぜフレームとしたかというと、状態(ステータス)を保持する必要があるからです。 [-]フレームの複数の窓はそれぞれ1つ前の状態(履歴)を保持可能。 [-]どちらのフレームの窓を使うかはどちらでも良く、広さは随時変更可能。 [-]画面に全然表示されない場合は、[+][-]等の構造に誤りがあります。 [-]この場合はテキスト部分を修正してから、再処理が必要です。 [+]操作法 [+]EXCEL frammacro.xls を起動して、sheet1のTOPへ、 [-]自動構造化VBAマクロをクリックして開く。 ●インターネットエクスプローラの場合 「ファィル」-「名前を付けて保存」で「frammacro.xls」で保存したもので起動する。 (EXCEL(ビューア)が上がりますが、キャッシュ起動はエラーになります。) ●ネットスケープナビゲータの場合 「開く」でなく、「ディスクに保存」で、 「frammacro.xls」で保存したもので起動する。 (ブラウザからのキャッシュ起動はファイル名が仮(TEMP名)のためエラーになります。) [-]エディター等で構造化記法で書いたテキストを [+]EXCEL(sheet1)に貼り付けて、(この例では貼付済み) [-]貼り付けた場合ここで一旦保存して、また開く。これは、終了判定がメモリ上のため。 [-]CTRL + sを押す。(EXCELでマクロの実行で、「framgene」を実行でも可) [-]次にEXPFRAMex0.htmを [-]frammacro.xlsと同じディレクトリー(ホルダー)に保存します。 [-]実行はEXPFRAMex0.htmを起動。 [-]これでうまく動いたら、他の文章も変換かけてみてください。 自分で作った文章を摘要することも可能です。 (他の文章をEXCEL(sheet1)に貼り付けCTRL + sで実行する。) [-]操作法ももっと簡略化する予定です。 [-]ネットスケープナビゲータ(NN)で試験してますがインターネットエクスプローラ(IE)でも動きます。 動きはIEの方が良い。 ただ、展開後の再アクセス時、NNはキャッシュから読むので反応速いが、 IEは毎回ネットから取り出すので反応速度がやや遅い。 [-]原理的にはEXCELマクロで原文の+-記号などを判別してJAVA入りのHTML文を自動的につくり、 xxx.prnファイルへプリント出力時にxxx.htmという名前に変えてページとフレームを作成しています。 エラーになる場合はEXCELでxxx.prnへ出力する際の印刷範囲が直前の設定を引継ぎ、 狭くなっている場合があるため等です。 その場合は印刷範囲を広げてください。これ面倒だから、そのうちなおします。 お急ぎの方は、.prn出力の変わりに、マクロ処理結果をエディターへテキストコピー貼付けすればOK。 [+]問題点 [-]まだ、完成していません。どんどん改良します。 [-]現在はあくまでも概要の説明程度の試用版レベルのもの。 これも戦略です。今後にご期待下さい。 なお、使用して何らかの問題が起こっても、使用者側に全責任があります。 ただ、たちの悪い問題は、起こさないようには最善の努力で気をつけています。 [-]現在EXCEL起動一回につき一回起動のみ。 (Book1でだけ動かすため。二回目はBook2になってしまうためエラーになる)。 今後改良します。 [-][+]をいちいち一つづつクリックするの面倒なので、 一度で全部開く方法の改造も予定しています。 現在原文も添付してありますので、 そのような場合は原文を参照して下さい。 [-]ハイパーリンクで飛んだ後、[+][-]が効かなくなる。その場合リロードして下さい。 (NNはNG。IEはOK) [-]該当の個所をクリックして該当の個所がすぐ出ない場合がある。 (TOPから出てしまう:NN。IEはOK) [-]EXCELファイル出力が.prnで、プリント範囲を超える長さの行は削れてしまい、 全体的にも動かなくなる。 今の対処法としては、なるべく行を短く区切るか、 根本的には、方式を変えるべきかも。 [-]動作が遅い。 VBAマクロでApplication.ScreenUpdating = False 画面遷移なしのコメント化を外すと少し早くなる。 ブラウザ自体の画面更新も遅い。 [-]終了後保存、保存と出るのもEXCEL独自でうっとおしい。 EXCELを介するためで、今後VB等スタンドアーロンで動くやつにしたい。 [-]操作が面倒臭い。未完成のため。今後改良します。 [-]一つの文で[+]の数は一応75が最大だが、 最大規格だと、重くなるので、 その都度指定か、自動判別でできるように改造予定です。 [-]まだ、全体的に面倒臭すぎるので、 ソースデータのSheet1への貼付も含めて、全部マクロでできると思うが、 製品として完成させてどうこうという考えが無いので、 自分の小細工で、その都度マクロをコソコソいじくるというところだろう。 もし、製品化を希望する方いらっしゃいましたら、御一報下さい。 [+]追記部分 [-]階層構造化記法の思想的。 [+]以下は別の文書とすべきかも。 [-]的、かもは流行語的。 [-]柔軟に対応。 [-]ここでは意図的に記法等をごちゃ混ぜにして、 [-]落差を感じ易くしています。 あえて末尾を揃えない エディター等(EXCELでも可)で文書を作成するとき、 WORDや一太郎等以外は全て、EXCELでもエディターでも、 文末(行末)での自動折り返し機能は無いので、 末尾を揃えるという問題に突き当たるのは、 必ず誰もがぶつかる問題だが、 そういう無駄な心遣いなしに、 箇条書き的に文章を書くが、 読む側には、多少読みにくいとも思うが、 このように、ブツブツに切って書くことには、 違和感を持つ人も多いとは思うが、 ことの成り行きには上記のような事情がある。 コンピュータ時代のことの成り行きとして必須のことなのだ。 そのことの切替えができない人も多いが、 あまり、長々と書かずに、句読点レベルで切るのも、 階層が深くなると、一つ一つのフレーズが長くなると、 紙に印刷したときや、画面で見るとき、 はみ出てしまうのもあって、短く切る必要もある。 深い階層のフレーズほど、短めに切る方が良い。 だいたい、セルや桝目に揃えて、 ギッチリ書くくせや習性に手名付けられているが、 ここで少し見直した方が良い。 桝目にそって、ぎっちり書く必要があるときは、 それはそれとして、一つの機能として、 そうした箱型編集の機能はエディターの機能の一つとして 付いているので、そうすれば良いだけのこと。 ここでは敢えて、そういう必要は無いのでこうなる。 構造化記法は、確かに読みにくい点はある。 私も構造化記法一辺倒でもない。 ケースバイケースである。 長々と長い文章を読むのが、カッタルイのもある。 情報洪水の時代は要点だけ見たいことが多い。 目が悪くて小さい字が見難いこともある。 だいたい、このページもそうだが、 長い文章はだいたい敬遠される。 短く、字自体も大きくする試みだ。 [+]箱型記入例 [-]  この方式でも、箱 [-]  型に編集すること [-]  は可能で、自由で [-]  す。動作も問題な [-]  く動きます。 EXCELは有能だ  今回、なぜこんなに面倒臭いことしたかというと、 本来、エディターのスクリプト処理やマクロ機能を使ってやれば良いものかも知れないが、 エディターのスクリプト処理言語は特殊で難しく、オブジェクト指向でないので難しい。 昔のMIFESにもバッチスクリプト処理言語は付いていて、便利だったけど、 オブジェクト指向でないし、機能に限界もあるし、今、入手困難である。(高価) PerlやCGIやJAVAも良いが、いずれ覚えたいが、障壁が高い。 VBAは割とポピュラーで、EXCELにほぼタダ同然でついているし、誰でも持っている。 割とオブジェクト指向で、開発環境も整っているし、ある程度の経験もある。 元は、操作性の良いEXCEL等中心で文書作成等してきたが、 エディターの軽さや、grep検索機能等が便利なので、エディターに乗り換えたが、 エディターの編集機能にも限界があるし、困った時は、EXCELも使うという訳だ。 エディターとEXCEL合い補って使う。 EXCELにこんな使い方があるの知らない人多いと思うけど、 エディターにも限界があって、私もこういう使い方ができると分かったのは、 テキストソート(近日公開予定)に引き続いて2件目だ。 今回階層構造化記法ということで、プログラム処理するのに、 難しそうで、実は意外に簡単だったけど、 これは、ある規則性に基づいて動くからだったが、 変則処理部分もあって、そこの処理を入れたため、 何か、妙にゴチャゴチャした感じにもなってしまった。 もう少し、今後整備するつもりだ。 今回、VBAでやって、意外に柔軟性があるので、大抵のことは今後できそうだ、 ということが分かったのが最大の成果だ。 何もMIFESが無くても、MIFES並かそれ以上のことが、VBAでできる。 プログラムとしての「出来」はいまいちだけど。 皆さんも宝の持ち腐れにせず、能力の高いEXCEL-VBAをもっと活用しよう。 (なぜか、ここだけ箱型編集)余談だが、 若い最近の人には無用の呼びかけだが、 私も割と古くからNEC-PC9801やMS-DOSを 使ってきて、ウインドウスV3.1もまだ、持っ ている。今のウインドウス95や98でも超えら れない部分があるとしたら、スクリプト処理 だろう。MIFESなどの機能に未練もあっ た。BASICと名がついたVBAだが、分かり にくかったが、なんとか追いついた。 NECの非DOS/V、ウインドウスの旧バージョンも捨 てる踏ん切りがこれで付いた。でも、ま だ、これらの不良在庫(?)を大量にかかえ ていることろも多いし、企業レベルでもそ うだし、中古に頼らざるを得ない個人 ならなおさら(?個人の方が早いかも)、 このことによる古傷(NEC支配帝国?)は意 外に根が深い。世間一般にも。パラダイムシ フトに泣かされるのがこの世界の宿命。 ちなみに、こういう箱型の編集は、後か らの追加も、やりにくくて非効率そのも のだ。でも、なかなか、抜け切れない。 それが象徴している。別の良さも残って いるからなおさらだ。今の若い人も今後 のパラダイムシフト、洗脳からの脱却ができる かで真価が問われる。 日本語をコンピュータ処理する  我々日本人、 エディターによる日本語処理を機械化、効率化、自動化するというのは、 求められる生産性の向上効果が高く、実益度の高いものだと常々思う。 そうしたものが意外に不十分だ。 今は、ややこしく、分かりにくいが、必須の機能として、 今後重用されるものだと、自負できる。 ただ、汎用性の高いものはそう、ざらには無いので、 VBAも使う機会は案外少ないけど、 開発には時間も手間もかかるので、開発はそのコスト見合いだが、 個別ケースでニーズがあれば対応するし、 ソフトウェアとその開発の要求はあると思う。 何か注文があれば、応じます。 コンセプト(意味のある日本人のためのデータ)のデータベース  EXCELやACCESSなどのデータベースの有り方はどうあるべきか、 から出発して、手探りでここまで来た。 コダシル(CODASYL)DBだとか、リレーショナルDBとか、ORACLE-DBとか、 丸裸の数字とか、そんなケチ(?)なデータベースでなく、 日本語の意味を持つデータをどうハンドリングするか、 意味のあるデータをどういう形で持つかは、 これらのエディターやOffice群(EXCEL)やHTMLを駆使した ハイパーリンクや階層構造が中心になると思う。 それらが取り扱うデータの最小単位は、 EXCELの一つにセル内容(上記ケチなDB)もないことはないが、 最低行単位から、ページ単位が中心になる。 それらは、主にハイパーリンクでたどる。 ページマップやリンクリスト等がデータディレクトリーになる。 日本人である以上、今後も日本語処理の摘要分野は広いと思う。 これは、私のライフワークでもある。 ソフト開発は面白い  考えれば分かる、教われば高められる、 考えることに生産性があるソフトウェア開発やITは、 何も財産も持たない、インド人や日本人に、有益な分野だ。 高いソフトではなく、安いか無料に限りなく近い環境で価値を産む。 無料ホームページの思想にも通じる。 自給自足の思想にも通じる。 ソフトを買うという思想が無い。 自分で作る物という考えがあり、本当は誰でも作れるのだ。 なまじ自分でできるので。エーイ!!教養が邪魔だ!! 今回作ったものに、金はあまりかかってない。 そして、無料で開放した。 かかったものは、通信料と時間と手間、そして、何よりも、 考えるという、誰にでも備わったものを使って成し得た。 考えるということが何よりも楽しかった。 次は、半分以下の時間で作れる。 時間といっても、正味3日ぐらいだ。 原始言語(C++とかPerlとか)で一から始めるのではなく、 既存ツール(EXCEL等)を土台にする。 ノンプログラムランゲージ(NL)の思想。 何も原始言語使わなくても、EXCEL等で何でもできる。 昔、表計算にマルチプランというのがあったが、 マルチのプランに対応できるという意味だったが、 EXCEL類がそれだ。


P.9 [先頭へ] [常に一つ前へ戻る]
〒メール〒
araichi@livedoor.com