Set writeSheet = ThisWorkbook.Worksheets(1) ' Sheet1 を参照    MsgBox "数字ではない" 書き方の例です。分かりやすくなった?この例は引数に"A1:H1"をセットしています。任意の範囲にするには Selection.Address に変えます。 よろしくお願いします。, IsAlphaが無いですね。 具体的に言うと以下の通りです。 【例】12345 → 000000000012345  If IsNumeric(Range("A1").Value) Then  test = Len(Activecell.Value)   シートAの値取得   MsgBox 入力有無フラグ            '帰ってきた答えをメッセージボックスで確認 テキストデータに意図しない文字種のデータが含まれていないかを確認したい場合があり、業務効率化と勉強がてらに作ってみました。, ツールはインターフェイスの作成が不要な EXCEL の VBA で作ることにします。, 入力文字を一文字ずつ抽出しLike演算子で判定、 記号なども含めて考える。 書いたモジュールは範囲が指定してあります。("A1:H11"は間違いです。質問からすると"A1:H1"です)何もしないで入力チェックを実行します。 で、四捨五入 みなさん、アドバイスよろしくお願いします!! 求めたいデータ:山田_ 太郎_ _ _ _ _ _ どのように書けばいいのでしょうか?, >とやってみたのですが、正しくないようです。 ' または Set readSheet = readBook.Worksheets(sheetIndex) For ~ To ~     fnc入力チェック = True このときのVBAは、オリジナルのファイル名を使っているため、ファイル名を変更するとエラーになり、以後の業務に使用できません。 このイメージ処理を行うとものすごい勢いで画面がチカチカします。。。   End If さらに数字のみの場合や、日付の場合にも処理も分けた方がよさそうだと思い分岐を追加。, ここではVarType関数を使いました。戻り値で変数の型などを返してくれるので、文字、日付、数字などを大別するには便利です。, 各入力値を、元の値と、ひらがな変換したものと比較して一致していればひらがなと判定、 を取得する事は可能でしょうか? で、早速、質問なんですけど、 この処理を行うと指定したシートへ強制的にとんでしまいます。。。 ZPOS = Sheet1.Cells(22, 4).Value  If VarType(Range("A1").Value) = vbDouble Then ついApplicationと書いてし...続きを読む, いつもお世話になります。 ・コマンドボタン押したら、どこのEXCELから取り込むかのポップアップ(?)は、表示はできてます。 数字か文字かなら、IsNumeric でよいと思いますが、数値か文字かでしたら、VarType を使います。私の場合は、IsNumericは、めったに使いません。VarTypeのほうが多いですね。IsNumeric は、文字通り、文字か数字かで、文字列書式の数字も含まれます。なお、VBAでは、数字は、数値型に型キャストされますので、特に問題は発生しません。 注意点は、半角カナのLike演算子の範囲を[ア-ン]にしてしまうと、 たとえば、範囲をA1:H1として、その範囲内のセルに何か入力があったらTrueが返ってくるとか・・・。 B, ŒÂl—pƒ}ƒNƒƒuƒbƒN‚ɍì‚Á‚½ƒf[ƒ^‚̓ǂݍž‚Ý•û–@, ƒI[ƒgƒ[ƒVƒ‡ƒ“ƒGƒ‰[‰ñ”ð‚µ‚½‚¢i“Y•t‚o‚c‚eŒÜ–‡ˆÈã‚É‚È‚é‚ƃGƒ‰[j, ƒtƒ@ƒCƒ‹Žg—p’†‚̃tƒHƒ‹ƒ_–¼•ÒW•s‰Â–hŽ~•û–@, uƒŒƒ|[ƒgã‚ōs‚Æ—ñ‚ð‹t‚É‚µ‚½‚¢v‚Ì‘ê‘ò‚³‚ñ‚ցA•ÊˆÄ. 1字づつ、JISコードの65-90、97-122をエラーにするチェックを行い、上記作った文字列はチェック後は使い捨てる。 Excel97 でも、同じですね。以下で試してみてください。 そこで、空白文字判定用のカラムを追加し、空白文字あれば”○”が入るように対応。, あとは結果表示の調整です。 Sub test() 式は正しいと思いますよ End Sub, こんにちは。 REPTは、所定の文字をくり返す関数です。, EXCELファイルのカレントフォルダを取得するには? またこれとは別に切上げ、切捨ても教えていただけるとありがたいです。, DMN = Application.WorksheetFunction.Round(ZPOS / ZPS, 0) モジュールを CountA(Selecton) に変えれば任意の選択範囲がチェックの対象になります。任意の範囲を選択して実行します。 みたいな感じでできませんか?, VBAにてデータが数字か文字かを判定するには、 返すにはどうしたらいいのでしょうか? 4: 半角文字を全角文字に変換します。 ... 「LenB 関数」を使用すると、VBA の文字コードは Unicode (UTF-16) なので、すべての 1 文字が 2 バイトになります。これを半角文字だけ 1 バイトとする … 1F  ← 文字  End If ここでDMNの値を四捨五入したいです。 Sub 入力チェック() Dim readBook As Workbook ' 相手ブック よろしくお願いします!!!!!, >これは、まず範囲を選択して、入力チェック()を呼ぶことなのでしょうか インフラグループの morikawa です。 物理サーバ上に Linux を稼働 ... こんにちは。開発グループの yamada です。 最近 React でフロントエ ... 開発グループの katsura です。 今月2018年12月というのは、PHP ... 開発グループの uzuki です。 早速ですが、可用性と一貫性を担保する SFT ... 情報セキュリティ推進室のIeiriです!Tricorn Tech Labsでは初 ... みなさんこんにちは!品質管理グループのs-24です。 先日、日本最大のテストイベ ... インフラグループの morikawa です。 先日開催された Internet ... Firefox57.0にてmousedownイベントによるダイアログボックス表示中のmouseupの扱いが変わりました.  Else ANDとORは、ANDが先に演算されます。/*と+-では、/*が先に演算されるようなものです。 さて、これで基礎は完成しました。, 次は空白文字の対応です。 Dim ZPOS As Double   Worksheets("シートA").Activate    "デフォルトパス    : " & c & Chr(13) & _ Sub Test()  ちょっと曖昧な表現かなぁという気もいたしますが、VBAが書いてあるブックのブック名は Next   MsgBox "その他" '代表的なものはエラー値です 123 ← 数字 ----------------------------------------- Set readSheet = Nothing     fnc入力チェック = False で、現在 "アクティブにして" 操作対象になっているブックの名前は 上記のを行ってから別シートの値を取得するのですが、 ActiveWorkbook.Name こちらの場合は、全角数字も、数字として扱われます。 これをVBAで書こうとして 地道にセル毎にチェックするしかないいんでしょうか?? と式を立てればOKです。 Excel VBA関数リファレンス - Len、LenB ... VBAの内部処理では文字列をUnicodeで扱っています。したがって、バイト数を単純に取得すると半角・全角にかかわらず1文字2バイトとして返ってきます。 G  ← 文字, こんにちは。 End Sub Excel VBAで全角と半角を区別して文字列を切り出す方法についてご紹介します。LeftB、RightB、MidBとStrConvを組み合わせることで全角は2バイト、半角は1バイトで切り出すことができます。 VBAで カタカナも同様に、という手段を取ろうと思いましたが、これには落とし穴が。。。 CURDIRでは上手い方法が見つかりませんでした。, こんばんは。 ここまでの対応で、全角、半角それぞれの空白文字も記号として振り分けはされるのですが、 Dim readBook As Workbook ' 相手ブック Dim writeSheet As Worksheet ' 自分自身の書き出し先シート   シートBの値取得 MsgBox True 教えてください!, Worksheets("シートA").Range("A1") MsgBox LenB(StrConv(a, vbFromUnicode)) ⇒ANSI文字列のため、「9」を返します。 注意点:ワークシート関数のLenB. チェック用に、半角に統一して(StrConv)文字列を作り、 If Sheet1.Range("F18") = 0 Or Sheet1.Range("F15") > 0 And Sheet1.Range("F16") > 0 Then ' 例えば EXCEL上ではキチンと「12」になるのですがVBAでは違うのでしょうか。 ・となると次はOPEN,INPUTですか? LenB(StrConv("ABC", vbFromUnicode)) ・・・ 3 半角のABCです LenB(StrConv("ABC", vbFromUnicode)) ・・・ 6 全角のABCです ※VBA関数一覧. Excelのワークシートで使う関数にもLenB関数があります。ワークシート関数のLenBはShift-Jis体系のため、半角文字を1バイト、全角文字を2バイトで処理します。 こんにちは、SATOOです。 今回は、XMLファイルをCSVファイルに置換してく ... 次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。. Sub Test2() c = Application.DefaultFilePath しかし半角で入力してある文字(数字)でも1文字2バイトになってしまいます。 Sheet1.Cells(23, 6).Value = DMN EXCEL VBAを使い出して、初日からつまずいてます・・・。  ElseIf VarType(Range("A1").Value) = vbString Then MsgBox (" >>> 補間誤差自動計算 <<< ") readBook.Close False ' 相手ブックを閉じる   MsgBox "数値" End Sub, Worksheets("シート名").Activate Dim ZPS As Double   If WorksheetFunction.CountA(Range(checkAddress)) > 0 Then 開発グループのkatsuraです。 Firefox57.0が先週リリースされまし ... 開設からそろそろ 10 年になろうかというトライコーンエンジニアによる技術ブログ ... インフラグループの Morikawa です。 今回は Ansible 2.0 で ... 開発グループの卯月です。 最近(といっても半年程前ですが)、私が担当しているプロ ... はじめまして、入社半年のkatsuraです。初投稿です。よろしくお願いします。 ... WordPress Luxeritas Theme is provided by "Thought is free".  If VarType(Range("A1").Value) = vbDouble Then モジュールを CountA(Selecton) に変えれば任意の選択範囲がチェックの対象になります。任意の範囲を選択して実行します。 【例】文字数を15と指定したとします ¦ã‹ã‚‰åˆ‡ã‚Šå‡ºã—, ③文字コードをShift-JIS⇒Unicodeへ戻す, ②RightBで好きなバイト数を右から切り出し, ②MidBで好きなバイト数分だけ中間を切り出し. C:\経理\予算.xls ぱっと見た目には分かりません。  =LEFTB(A1&REPT(" ",15),15) 引数で、対象桁を変更できます。, EXCEL2003 VBAで業務を簡素化するために、現在開いているブックのファイル名を取得する方法が分かりません。 他のフォルダーにあるEXCELの項目の内容を取り込みたいです。 ご参考までに。 行っていたところ【IsNumeric】を英数字で行いたいのですが 濁点半濁点が無視されてしまうので、そこまで含んだ指定にするところでしょうか。, なのでLIKE演算子で0~9の場合の条件分岐を追加しました。 もし、知ってる方がいらっしゃたら教えてください!! いままで、ある項目の入力チェックを数字のみで 「value VBA」に関するQ&A: VBA .Value=.Value ? 常にファイル名を取得出来るVBAをどなたか、教えて下さい。, >現在開いているブックのファイル名 DMN = Application.RoundDown(ZPOS / ZPS, 0) Set readBook = Nothing, 私がやる方法です。 'このブックのパス D:\2005年度\予算.xls ---コード--------------  Else ※TEXT関数で数値の文字数不足分を0で埋めるということはできたのですが、TEXT関数は数値のみを対象としているようで・・・。 Set readBook = Workbooks.Open(filename) ' 相手ブックを開いて参照 >VBAは、オリジナルのファイル名を使っているため、ファイル名を変更するとエラーになり ですね。 ただ記号は十分検討が必要です。制限しすぎると、運用後にダウンとか、大騒ぎになる恐れをこめてます。, ワークシート関数で書けば でも、わかり易くするために、#1のかたのように括弧をつけるほうが良いですね。, ※各種外部サービスのアカウントをお持ちの方はこちらから簡単に登録できます。   Worksheets("シートB").Activate たとえば他のフォルダーのEXCELのRange("A2:A3").ValueをメインプログラムのRange("C2:C3").Valueにセットしたい時です。 DMN = Application.RoundUp(ZPOS / ZPS, 0) Else  ElseIf VarType(Range("A1").Value) = vbString Th...続きを読む, メインプログラム(EXCEL VBA)より、 こういうルーチンを作るより他ないでしょう。 どうすれば良いのでしょうか? Tricorn Tech Labs はメールや LINE を用いた Web マーケティング SaaS に強みを持つトライコーン技術者によるブログです。, 2014 年 1 月 6 日blackexcel, VBA, テキスト処理, 文字種判定, 今回は業務に使うツール作成をしてみました。このツールは複数行にリスト化された文字列に対して、各行ごとに含まれる文字種を判定するものです。 'カレントディレクトリ Dim readSheet As WorkSheet ' 相手シート VBA初心者の質問です。   入力有無フラグ = fnc入力チェック("A1:H1")  'モジュール内でA1~H1を指定(固定)        : Set readSheet = readBook.Worksheets("sheetName") ' 相手シートを参照 シートを変えずに他のシートから値を取得する方法はないのでしょうか。 ThisWorkbook.Name Dim writeSheet As Worksheet ' 自分自身の書き出し先シート 書いたモジュールは範囲が指定してあります。("A1:H11"は間違いです。質問からすると"A1:H1"です)何もしないで入力チェックを実行します。 お客様の許可なしに外部サービスに投稿することはございませんのでご安心ください。, VBA 実行時エラー1004 rangeメソッドは失敗しました。globalオブジェクトのエラー, Excel 特定の文字以外のセルの値を返す関数 Excelの関数についての質問です。 特定の文字以外, Excel VBA右端のセルに文字を入力、セルの色を変えるには 初心者です。 調べましたが、どうして, VBA セル入力時、条件でセルの内容を削除する方法について。 VBA初心者です。 o21セルへ入力時, Excelの関数かVBAでグループ分けする方法を教えてください(。-_-。) (VBA初心者です), エクセルのVBAで教えたください。セルの文字数が特定の文字数の時のみ下2桁を書き出す方法。, excel初心者です。 VBAを使用せずにプルダウンと指定セルへのハイパーリンクの連動させたいのです, VBA初心者で勉強中です。 ご教授お願いします。 複数ブックの複数シートを各シートの特定セル(文字), Excelについて あるセルに文字が入ったら違うセルに色が付き、 色がついたセルに文字を入力したら色. それ以外は半角記号と見なすようにしました。 あい ← 文字  End If 指定したセル範囲のいずれかに入力があるか調べたいんですけど、それができるプロパティとかってあるんでしょうか? Sub hokangosa() (C:\経理\,D:\2005年度\) LENB関数は、文字列のバイト数を返す関数です。全角1文字を2バイト、半角を1バイトとして数えます。※LEN関数では、全角・半角は関係なく1文字として数えます。, 文字数とバイト数の内訳です。これからLENB関数を利用して、バイト数をもとめていきます。, まずC3セルを選択し、数式バーに頭文字『=L』を入力します。すると頭文字「L」の関数一覧が出るので、【LENB】を選択します。, 【LENB】を選択すると「=LENB(」が現れるので、続けて『A3)』を入力し、Enterを押します。, すると、A3の文字のバイト数がC3のセルに現れます。そしてアクティブ状態になっているC3のセルの右下にカーソルをあわせると十字キーに変化するので、そのまま下へ一気にドラッグします。, 全角と半角の文字数の一覧表です。LENB関数とLEN関数を組み合わせて、関数式をつくっていきましょう。※LEN関数は半角と全角の区別なく、1文字を1として処理します。, まずは、全角文字数をもとめていきます。B3セルを選択し、『=LENB(A3)-LEN(A3)』を入力し、Enterを押します。, A3セルの全角の文字数がB3に出てきました。上記の要領で、A4からA10セルの全角の文字数をもとめていきます。, 次に、半角文字数をもとめていきましょう。まずC3セルを選択し、『=LEN(A3)*2-LENB(A3)』を入力してEnterを押します。, A3セルの半角の文字数がC3に出てきました。上記の要領で、A4からA10セルの半角の文字数をもとめていきます。, 地名の表の一覧です。どの文字が全て全角になっていて、どの文字が全て半角になっているのかを、これから判定していきます。, まず、全て全角になっているかを確認していきます。B3を選択し、数式バーに『=LEN(A3)*2=LENB(A3)』と入力します。, 次に、アクティブ状態になっているB3のセルの右下にカーソルをあわせると十字キーに変化するので、そのまま下へ一気にドラッグします。, A3からA10まで「全て全角になっているかどうか」の判定結果が表示されました。「FALSE」は、この条件に「適合していない」という意味です。, 次に、どの文字が全て半角になっているのかを判定していきます。C3を選択し、数式バーに『=LEN(A3)=LENB(A3)』と入力します。, C3に判定結果が表示されるので、上記の方法と同じ要領でC4からC10の判定結果を出していきます。2つの条件に、どの文字が適合していて、どの文字が適合していないのかがわかるようになりました。, これから、半角で入力した文字数が条件に適合しなかった場合に、エラーメッセージを表示させる方法をご紹介していきたいと思います。, D4を選択した状態で、【データ】タブ、【データの入力規則】、【データの入力規則(V)…】の順に選択します。, 「データの入力規則」ダイアログボックスが表示されるので、「設定」タブが選択された状態で、入力値の種類のプルダウンから【ユーザー設定】を選択したら、数式のボックスに『=AND(LENB(B4)=9,LEN(B4)=9』を入力します。, その後、【エラー メッセージ】タブを押します。※「AND」関数とは、指定された複数の条件が成立するときに「TRUE」を、一つでも不成立であれば「FALSE」を返す関数です。, すると画面が切り替わるので、エラーメッセージの欄に文章を入力します。例えば、『半角9文字で入力してください』と入力し、【OK】ボタンを押下します。, また、B7の条件を半角10文字「以内」に指定したければ、以上の手順の中で数式のボックスを『=AND(LENB(B7)<=10,LEN(B7)<=10)』と変えます。それに伴い、エラーメッセージの欄も適した文章に変えましょう。, さらに、B3の条件を半角「のみ」に限定したければ、以上の手順の中で数式のボックスを『=LEN(B4)=LENB(B4)』と変えます。同じく、エラーメッセージの欄も適した文に変更しましょう。, 当サイトでは、ここでご紹介できなかった関数の一覧ページもご用意しております。ぜひ、参考にしてください。, すべて全角なのか、もしくは半角文字なのかどうかを判定する方法(LENB×LEN関数). 下記の fnc入力チェック は入力有無を返すユーザー定義関数です。 ' 例えば テストしてみると、全角の記号や長音が含まれていた時それを識別できないことが判明。 Set writeSheet = ThisWorkbook.Worksheets(1) ' Sheet1 を参照 セルに入力されたデータ:山田_ 太郎   Dim 入力有無フラグ As Boolean        '入力有無の答え (山田の後に半角スペースが1、太郎の後に半角スペースが6つ入っていると仮定してください)