• ベストアンサー

VBA for Excedで構文エラー(ユーザー関数でIFを使いたい)

chibita_papaの回答

  • ベストアンサー
回答No.1

もし、この関数が正しい値を戻すとしたら DELKAIGYO = IIf(Right(文字列, 1) = Chr(10), Left(文字列, Len(文字列) - 1), 文字列) です。

noname#61366
質問者

お礼

早速のご回答、ありがとうございます。 できました! 通常の関数とVBAの関数には微妙に違いがあるのですね。 もっと勉強したいと思います。 WEBのみで勉強しようと思うのが悪いのかなぁ...

関連するQ&A

  • エクセル(IF関数)について

    IF関数について教えてください WINDOWS7を使っています。 エクセル2010で使ったIF関数が、2003や2007では機能しません。 そんなことがあるのでしょうか? MOD、 VALUE、 LEFT、 RIGHT等 簡単な組み合わせなのですが・・・。 もちろん同じように入力しています。 よろしくお願いします。

  • IF関数で結果が♯VARUE!のとき...

    EXCEL2000で、IF関数を使用しています。 条件式で,結果が♯VARUE!の時は、正を返したいのですが、うまくいきません。 教えて下さい。 実際に組んでいる式です。 =IF(FIND(" ",I6)=0,LEFT(I6,LEN(I6)),LEFT(I6,FIND(" ",I6,1)-1)) スペースがあればスペース前の文字列を返し、スペースがなければ全文字返すという式を組んでいます。 スペースがなければということで、FINDが0ならとしたのですが、上手くいかないため、エラーならば、という条件に変えようとしている次第です。 宜しくお願い致します。

  • ユーザ定義関数がうまく動きません。

    ユーザ定義関数がうまく動きません。 2月のA1セル値が1になっていたりします。 どこがおかしいのかわかりません。解決方法を教えていただけませんでしょうか。 よろしくお願いします。 【シートの設定】 シート名は1月・・・12月です。 各シートの A1セルは「=sheetname()」 B1セルは「月のチェックシート」 が入っています。 【VBAの設定】 Function SheetName() As String 'Application.Volatile If Len(ActiveSheet.Name) = 3 Then SheetName = Left(ActiveSheet.Name, 2) Else SheetName = Left(ActiveSheet.Name, 1) End If End Function

  • Left関数とRight関数を合わせたような

    こんにちは いつもお世話になっています。 A列に文字列があります。 文字の長さは不定ですが、左から3文字、右から4文字は共通して不要なので削除したいです。right,leftの両関数を合わせたような関数を教えてください。 二列で分けて処理するのではなく一回の関数で処理希望です。 =LEFT(A2,LEN(A2)-4)&RIGHT(A2,LEN(A2)-3) こんなので失敗しています。 よろしくお願いします エクセル2007

  • エクセル・IF関数・レフト/ライト関数について

    よろしくお願いいたします。 例えば ある文字の 右から5行目(最後の一文字はいらない)までの文字を 読み込みたいという時の事ですが・・・・ たとえば セルA1 の 日野自動車 (7205) という文字の 7205 だけを読み込みたいのです。 =RIGHT(A1,5) という関数を使うと 表示されるは 7205)と なります。最後の ) がいらないのです。(SAM計算ができなくなるため)   表示    日野自動車 (7205) 式        ↓=RIGHT(I1,5) 表示       7205) 式        ↓=LEFT(I2,4) 表示       7205 このやり方なら できましたが・・・・ IF関数をしこむ セルが2つになってしまうなどで 困ってしまったのです。セル 一つにIF関数をしこめば大丈夫な式はありますでしょうか? すみませんが よろしくお願いいたします。  

  • Excelユーザー定義関数が書き込まれているセルアドレス

    Excelのユーザー定義関数で、自分自身が書き込まれているセルのアドレスって取得出来るのでしょうか? 例えば、 Function test(MyString As String) As String test = "入力された文字は、「" & MyString & "」です" End Function とユーザー定義関数を作り A1のセルに =test("てすと") と書くと 入力された文字は、「てすと」ですと出てきます。 そこで、ユーザー定義関数のなかで、ユーザー定義関数を呼び出した式が入力されている(上記の例ですと、「A1」)アドレスを取得する方法ってありますか? どなたか、詳しい方いらっしゃいましたら教えてください。

  • 【VBA】ユーザ定義関数が動かない

    【VBA】ユーザ定義関数が動かない 下記のようなプログラムをVBEの標準モジュールに記述して、 ワークシートの適当なセルに「=tc("aa","bb")」と入力してEnterを押した所 セルの表示が「=tc("aa","bb")」となってしまい狙った効果が得られません。 本当は、「aabb」と表示させたいのですが、なぜうまくいかないのでしょうか。 ご教授願います。 ◆関数の仕様  引数1と引数2に入力された文字列を連結して返り値として返す。 ◆コード Function tc(str1 As Range, str2 As Range) As String Dim Str As String Str = str1.Value & str2.Valuett tt = Str End Function

  • IF関数

    A列とB列に数字が入力されており、An>=Bn(nは任意の整数)のとき、Cn(C列)にXという文字を入力、An<Bnの場合は、Cnは空欄にしたいのです。 IF関数を使ってCnに =IF(An>=Bn,X,) と入れてみましたが、An>=Bnの時は、♯Name?というエラーメッセージがでて、An<Bnの場合は0が入力されます。 どこが間違っているでしょうか。

  • エクセルの文字列・数値【長文です】

    昨日、LEFT関数の使い方を教えていただきましたが、これですとLEFT関数を用いたところが【文字列】として認識されました。【数値】として認識させる方法を教えてください。 初心者で申し訳ございません。 昨日の質問・いただいた回答は以下の通りでした。 ≪質問≫ [123456/あいうえお/abc][234567/かきくけこ/efg]のようなデータがいくつかあって(例えばA列に)、B列に[123456][234567]、C列に[あいうえお][かきくけこ]、D列に[abc][efg]と表記できるような【関数】を教えてください。 ≪いただいた回答≫ A1にデータがあったとして。 B列 =LEFT(A1,SEARCH("/",A1,1)-1) C列 =LEFT(RIGHT(A1,LEN(A1)-SEARCH("/",A1,1)),SEARCH("/",RIGHT(A1,LEN(A1)-SEARCH("/",A1,1)),1)-1) D列 =RIGHT(RIGHT(A1,LEN(A1)-SEARCH("/",A1,1)),LEN(RIGHT(A1,LEN(A1)-SEARCH("/",A1,1)))-SEARCH("/",RIGHT(A1,LEN(A1)-SEARCH("/",A1,1))))

  • Excelのユーザー定義関数について。

    ネットで調べて「アルファベットのみを半角にする」というユーザー定義関数を発見し使用していますが、 この関数にある特定の文字を変換する条件を追加することはできますでしょうか。 例えば、リンゴ という文字がセル内にある場合、ミカン に変換されて表示されるという条件を下記のユーザー定義関数に加える事ができますか。 もしくは、新たに別のユーザー定義関数を作るしかないのでしょうか。アドバイスよろしくお願いします。m(_ _ )m Function ASC_A(str As String) As String Dim i As Integer For i = 1 To Len(str) If Mid(str, i, 1) Like "[a-zA-Z]" Then Mid(str, i, 1) = StrConv(Mid(str, i, 1), vbNarrow) End If Next ASC_A = str End Function