Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(指定なし : 指定なし)
英文翻訳文(半角・全角混在)中の翻訳日本語文(全角)の開始位置を把握したい。
投稿日時: 20/07/05 10:36:27
投稿者: yachan

 
 
 
 
 
So the idea Walker app doesn't apply to you.    そのため、Walkerアプリは適用されません。

投稿日時: 20/07/05 11:08:32
投稿者: yachan

 (質問者のyachanです。質問文章を完成する前に投稿になってしまったみたいで大変失礼しました。)
 質問の趣旨は、英文と翻訳日本文が一塊となっている文書を、英文と日本語文を分けて整理するため翻訳日本文の開始位置を把握するのが目的です。
 これまで、Len、LenBを使って文字数差を算出する方法でトライしたら大部分は目的を達成できましたが、最初に例示した文のように翻訳日本語文の中に名前等が英文(半角文字)で引用表示されている場合は、このLen方式ではうまくいきません。instr関数を使うにも目的の全角文字である特性をどう表示するのかが分かりません。良い方法がありましたら教えてください。
(最初に例示した文の再掲)
  So the idea Walker app doesn't apply to you.そのため、Walkerアプリは適用されません。

回答
投稿日時: 20/07/05 19:55:12
投稿者: simple

>英文と翻訳日本文が一塊となっている文書
そもそも全体として、一定のパラグラフ毎に英語と日本語が交互に出てくるんですか?
それは何かの翻訳ソフトからのアウトプットなんですか?
そうだとすると、一定の規則的な区切りがあるような気もするんですが。
そのあたりの説明をしていただけるとよいかと。

投稿日時: 20/07/06 08:57:09
投稿者: yachan

 
 早速対応いただきありがとうございます。
 この例文はPOCKTALK(翻訳器)で収録したデータをCSV形式で抽出したものの一つで、原文は次のとおりとなっています。
「"2020/07/03 14:07:03    So the idea Walker app doesn't apply to you.    そのため、Walkerアプリは適用されません。    English(US)(English(US))    Japanese(日本語)"」
 そして、全体としては収録した塊単位にこのような形のデータ複数行並んでいます。
 なお、これまで試した中で、このデータをTXTデータ化するとカンマ区切り部分で分けることができるし、また、この原文でみると日本文の前のスペース部分が長く、1つのスペースではなさそうなのが気になっています。

回答
投稿日時: 20/07/06 09:22:14
投稿者: QooApp

yachan さんの引用:

So the idea Walker app doesn't apply to you.    そのため、Walkerアプリは適用されません。

 
行頭から1文字づつ、2バイト文字かどうか判定すれば、
和文の冒頭が半角の英数から始まる場合以外は判定できると考えます。
 
バイトチェックは以下URLを読んでてできるんじゃないかと思いました。
https://kazusa-pg.com/vba-string-has-zenkaku/
 
〜〜〜〜
 
逆に和文冒頭の英数をどちらに属するかどうかを判定できる条件はありますか。
引用したデータを見る限り、半角スペースが数文字入っているように見えます。
と、書こうとしたけど引用にして選択するとエディタ上ではTABキーですね。
ということは文字コードのTABキーかどうか判定したらいんじゃないでしょうか。
 
※モーグの投稿エディタってTABキーを直接入力できないはずなので、掲載されているテキストはコピペで貼ったものと考えての以下意見です。(自分が知らないだけかもしれませんが。)
 
もしもTABキーの判定で前後切り分けができるのであれば、下記で達成できませんか。
Dim str As String
str = "aiueo." & vbTab & "あいうえお" ' ここ変数に英文タブ和文の1行テキストが入っている前提
MsgBox Right(str, Len(str) - InStr(str, vbTab))
 
 
 

回答
投稿日時: 20/07/06 09:28:44
投稿者: QooApp

yachan さんの引用:

 早速対応いただきありがとうございます。
 この例文はPOCKTALK(翻訳器)で収録したデータをCSV形式で抽出したものの一つで、原文は次のとおりとなっています。
「"2020/07/03 14:07:03    So the idea Walker app doesn't apply to you.    そのため、Walkerアプリは適用されません。    English(US)(English(US))    Japanese(日本語)"」
 そして、全体としては収録した塊単位にこのような形のデータ複数行並んでいます。
 なお、これまで試した中で、このデータをTXTデータ化するとカンマ区切り部分で分けることができるし、また、この原文でみると日本文の前のスペース部分が長く、1つのスペースではなさそうなのが気になっています。

 
 
追記ですみません、最新投稿が表示されていたので追記します。
※下記URL、押すとPDFがダウンロードされる直接URLですが。
http://www.sourcenext.com/~/media/Images/support/faq/pk/pk-center2
 
こいつの4ページ目にかいてあるCSV取り込み手順のカンマ区切りで取り込みで速攻解決しませんか?

投稿日時: 20/07/06 17:14:37
投稿者: yachan

 分かりやすいご説明ありがとうございました。お陰様で課題が解決しました。
特にTabに関わるVBAの書き方は経験したことがなく、今回勉強になりました。
また、POCKETALKに関する情報までいただきありがとうございました。