• 締切済み

VBAのwordsと同様の関数は使えないのでしょうか?

Word VBAで作ったプログラムを、VB(またはJAVA)に作り替えたいと考えています。 Word VBAでwordsという、単語を判定する関数を使っているのですが、 VB(またはJAVA)ではこれと同等のことをできないのでしょうか? ご存じの方いましたらご教示下さい。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

どのベースから出発するのですか。 (1)ワードのドキュメントの上で まづワードのドキュメントをワードVBAに頼らず読むのは難しいのではないですか。その中からテキスト情報を抜き出した経験ありますか。 そういうHDDに保存されるファイル形式や、メモリに読み込んだときの展開形式、および各情報の意味などの技術情報を持っていますか。 多分無いでしょう。であれば難しい。 (2)テキストになったものを別途VBで読んで何かするのならば、できるのではないですか。 詳細わからないが、「Words」の定義は「単語」となっていて、スペースで区切られた文字列の塊だけで、意味的なチェックは成されていないと思う。 そうであれば、ワードで当初作成されたテキストでも、抜き出したテキストでも同じで、特に難しい点は無いと思う。 ーー しかしこれも、文書の語数を数える程度のことで、一般にはワード用の機能を、ワードに備わったVBAやAPIレベルのプログラム群(=VBAのAはこの場合ワード)を使わないで実現するのは、素人や ちょっとしたプログラマには手が出ないでしょう。 ーー 非常に突飛な質問に映るが。 ニーズに対して対処する発想がおかしいのでは。何をやりたいのか、ワードと(離れられるなら)はなれて、ニーズの実情を補足してみたらどうでしょう。

yukisi_001
質問者

補足

説明足らずで申し訳ありませんでした。 改めて説明させていただきます。 やりたい処理としては、テキスト情報を指定した文字数以上の適当な 区切りで改行を入れる処理です。 テキストファイルとして最終的には保存します。 (便宜的にWordを利用してはいますが、扱っているのはテキスト情報のみです) 以下の例として、 指定文字数=8文字 ※8文字以上で改行を入れる。 という設定で、私が最初に質問した文章を処理したとした場合、 以下のようになります。  ※他にも複数処理をしているため、少し違う結果になるのですが、ここでは省略しています。 ---------- Word VBAで 作ったプログラムを、 VB(またはJAVA) に作り替えたいと 考えています。 WordVBAで wordsという、 単語を判定する関数を 使っているのですが、 VB(またはJAVA) ではこれと同等の ことをできないの でしょうか? ご存じの方いましたら ご教示下さい。 ---------- 文章の区切りとしておかしくない所で改行をするためにWord VBAのwords関数を利用していました。 この関数を利用すると、 ------- おはようございます。本日は晴天なり。 ------- の文章を 「おはよう」「ございます」「。」「本日」「は」「晴天」「なり」「。」 のように判定してくれます。 現在のままで元々の目的は達しているのですが、 諸事情により、Wordベースではなく、独立のプログラムにしたいと 思いました。 私の調べ方が悪いだけで、VBにも同じ関数が使えたり、または別な名前で同等の関数または同等の処理ができるのではないかと思い、お伺いした次第です。

関連するQ&A

  • EXCEL VBAからブザーとパトランプを制御し…

    EXCEL VBAからブザーとパトランプを制御したい リアルタイム計測データをEXCELに取込み、演算した結果が判定値意外で あった場合だけブザーとパトランプで警報を出すシステムを構築したいと 考えています。 できればEXCELで演算⇒結果を判定⇒警報を出すを一連のシステムで組み たく、EXCEL VBAで”演算結果の判定⇒警報”のプログラムは可能でしょうか? EXCEL VBAで無理な場合VBで考えたいと思います。 VBのプログラムは殆ど経験が無いため、何か参考になるプログラム、本の 情報でも何でもかまいませんので情報を教えてください。 宜しくお願いします。

  • VBAでMODE関数をつくる

    VBA初心者です。VBAを使ってMODE関数をつくるにはどのようなプログラムを書けばよいのでしょうか?わたしは、同じ数字が出てきたら足していく→合計を元の数字で割る→割った答えが最大になるとき、元の値が最頻値。というイメージをもったのですが、これをプログラム化することは可能でしょうか?教えてください!!!

  • VBAで関数を挿入したい

    VBAでISBLANK関数を Fomulaでシートに挿入したいのですが アプリケーション定義またはオブジェクト定義のエラーとなってしまいます。 ISBLANK関数をVBAで挿入するにはどうすればうまくいくでしょうか? 他にもISNULLやISEMPTYを試しましたがうまくいきませんでした。 どなたかご存知の方がいらっしゃいましたらアドバイスをお願いいたします。

  • Excel関数のようなものはありますか?

    こんにちは。まだプログラミングをほとんどしたことがないのでわからないことがあります。 現在Excelを使っていますがExcel関数は非常に使いやすいく重宝しています。 Excel関数は300種類ほどあるそうですが、C++やVB、C#、JAVAなどのプログラムにもExcel関数のようなものが あらかじめ用意されているのでしょうか? もしExcel関数の中で使いたいものがあり、そういう関数がソフト側で用意されてない場合は自作するしかないのでしょうか?

  • VBAでの複素数関数

    複素数の関数を使い計算処理を行っているのですが、VBAの複素数関数処理がかなり遅い(計算処理を行う個所が非常に多く、何度もループし、VBA関数を呼び出しています。)ので、スピードを上げる方法をどなたかご存知であれば、教えていただきたいのです。 よろしくお願い致します。

  • VBAのEvaluate()をVBで記述するには

    ExcelVBAで書かれているプログラムをVB(VisualBasic)に書き直していますが、 VBAのコードの中で、別ファイルから任意の数式(例えば「=3600/60+5000」など)を読み込んで、Evaluate()という関数でこの演算結果を取得している部分があるのですが、VBAのEvaluate()の部分をVBで記述することは可能でしょうか。 よろしくお願いします。

  • VBとVBAの違いについて

    こんにちは。 VBとVBAはどんな違いがあるのか教えてください。 これから転職をするためにVBは持っていないため、VBAの勉強を始めようと思っています。 かつてdbMAGICというツールを使って開発経験があります。 独学をしようと思っていますので、参考になる書籍やサイトをご存知でしたらご教示頂けたらと思います。

  • VBAでの[]

    Excel VBAのプログラム上で SNDsrcNoC = [N_SrtNO].Column のように、[]で囲まれている箇所があるのですが、どんな意味なのかわからないでおります。 []の前に何もないので、配列の添え字や関数の引数でもなさそうです。 ご存知の方どうか教えてください。 VBA [] とかでグーグル検索してもうまいのがでてきません。

  • VBAについて教えてください。初心者です。

    前回、VBについて質問させていただきました。 そのときに親切な方々に教えていただきVBとVBAは別物だと知りました。 日経ソフトウェアの本を読みながらVBの勉強をとおもってたのですが、VBAだったためLoadコマンドなどのプログラムですでに解らなくなってしまったのです。 いろいろ質問欄を拝見させていただきましたが、VBの勉強をVBAでしてても問題はあまりないとなんとなく解って来たのですが、VB専用(日経ソフトウェアの様な本)の本を読みながらですとVBAでは仕様が違うプログラム内容が出てきそうなので、VBA専用の参考書とか解りやすい専用本ないでしょうか?? 解りやすいと言うところが難しいかもですが、よろしくお願いいたします。 また、VBが出来るって人に言うまでのレベルになるにはVBAで勉強を進めていても問題ないでしょうか?? 度重なる質問ごめんなさい。

  • エクセルVBAでタイマーコントロールは使えますか

    エクセルVBAでタイマーコントロールは使えますか。 エクセルVBAで、ある時刻になったらマクロを実行させたいと思っています。 無限ループの中にTIME関数で時刻を呼び出し、それをIF文で判定して、 一定時刻にマクロを実行させるものは作りましたが、CPU負荷が高く、24時間 連続で動作させることに不安を感じています。 この他に、VBのタイマーコントロールのような機能を持つオブジェクトや 便利機能等があったら教えていただけませんか。 (一応、VBで時刻管理をするプログラムを作ってそこからエクセルVBAを呼 び出す方法やタスクスケジューラでエクセルVBAを呼び出す方法、ATコマンド 等も考えていますが、可能ならエクセルVBAで閉じて処理をしたい)。 尚、私はWindowsMe+エクセル2000でVBAを作成しています。 実際にVBAを動かすのは、WinsowNT4.0サーバー+エクセル2000を予定してい ます。

専門家に質問してみよう