ushi2015 の回答履歴

全862件中621~640件表示
  • VBAエクセルシートの値をIN句

    いつもお世話になっております。 エクセルで、オラクルDBから、特定の商品の販売数を取得するVBAを作ったのですが、集計したい商品がまれに変更になります。 出来れば、エクセルシート「抽出リスト(仮名)」のリストの値を抽出できるようにするにはどういったSQLを書けばよいでしょうか? 【テーブル構成(FRT_ITEM)】 ITM000:取消フラグ ITM050:販売日 ITM150:科目CD ITM160:科目名(商品名) ITM200:販売数量 現在のSQL文 stSQL = "SELECT " & vbCrLf stSQL = stSQL & "ITM050 AS 販売日," & vbCrLf stSQL = stSQL & "ITM150 AS 科目CD," & vbCrLf stSQL = stSQL & "ITM160 AS 科目名," & vbCrLf stSQL = stSQL & "SUM(ITM200)AS 個数" & vbCrLf stSQL = stSQL & "FROM FRT_ITEM" & vbCrLf  ’キャンセルフラグ除外 stSQL = stSQL & "WHERE ITM000 = 0" & vbCrLf ↓ここから科目CDによって商品抽出 '商品Aグループ stSQL = stSQL & "AND ITM050 = '" & DT & "'" & vbCrLf stSQL = stSQL & "AND ITM150 BETWEEN '1600' AND '1610'" & vbCrLf '商品B stSQL = stSQL & "OR ITM050 = '" & DT & "'" & vbCrLf ↑ ここまで stSQL = stSQL & "AND ITM150 BETWEEN '1521' AND '1521'" & vbCrLf stSQL = stSQL & "GROUP BY ITM050,ITM150,ITM160" & vbCrLf stSQL = stSQL & "ORDER BY ITM050,ITM150,ITM160" ※変数DT:販売日 この状態だと、抽出する商品が変わるごとに、SQL文を修正する必要があるため、別シート「抽出リスト(仮名)」に抽出する商品CD一覧を記載し抽出出来ないかと考えております。 多分、IN句を使い、抽出リストシートを呼べれば良いのではと考えておりますが、書き方が分かりません。 ※商品の数は、最大30種類程度となります。 また、テーブル(FRT_ITEM)は500万レコード以上あるため、IN句をつかってのテーブル総なめ抽出はDBへの負荷が心配です。 アドバイスを頂けましたら幸いです。

    • sujino
    • 回答数1
  • エクセルでセルに入力した値が消えてしまう

    1件質問させてください。 エクセル2013で時々発生するのですが、セルに値を入力したり、貼り付けたりした後、Enterキーを押すと入力した値が消えてしまうことがあります。 ちなみに、上の数式バーにはちゃんと入力した値が表示されていますので、入力自体はできているようなのですが、なぜかセルの部分には表示されないという現象に悩まされています。 確認したところ、文字が白に設定されている訳でもなく、表示形式も標準になっています。 セルがロックされていることもありませんでした。 さらに不思議なことに、この問題が起こったあと、別のソフト(例えばIEとかクロームとか・・・)を画面に出して、再びエクセルを画面に表示させると、消えていたセルの値がスーッという感じで湧き出るように表示されてくるのです。 その後はセルの値が消えることはないのですが。 なぜ、このような現象が起こるのでしょうか? 原因、対策をご存じの方いらっしゃいましたらご教示頂けると助かります。

  • エクセルのif関連の質問です

    前提として、引継ぎがなく、前任者はもう連絡が取れないので、このデータを作っている人に聞くことはできません。 また、作成者のほかに今まで勤めている人はいるのですが、パソコン関係が全く分からず、聞くことはできません。 エクセルで、前任の方がプログラムを組んでいるのですが、VLOOKUP関数のときに、=VLOOKUP(検索値、範囲、列番号、検索方法)の範囲の部分が、 セルのシートの名前が多いと認識してます。 そこで問題が起きているのですが、その範囲の部分の名前のデータ名がありません。 ゆえに、どこのシートの検索をしているのかわからないので、新規の時に データを追加できません。 どうしたら、この検索範囲がわかるようになるでしょうか? くだらない質問で申し訳ありませんが、よろしくお願いいたします。

  • 公差を設定して判定するマクロ

    規格を設けて判定するマクロについて教えてください。 下記のようなマクロがあるとき、現在はE列、H列、K列が同じ数値の場合は 塗りつぶしが行われるようになっています。 これを少し改造して、B4セルに公差の数値を入力した時 E列の数値を基準とし、H列、K列がE列からB4セルに入力した公差内なら色を付けるような マクロを組みたいです。 例えばB4セルに2と入力してあるとします。 E列の数値が4.2だとした場合 H列は2.2、K列は6.2ならE列の数値の±2なので塗りつぶしされる。 E列の数値にB4セルの入力した数値の±をH列、K列を超える場合は 塗りつぶしは行わない、という感じです。 わかりずらい説明で申し訳ありませんが、宜しくお願いします。 Sub 判定仮() Dim i As Integer, j As Integer Range(Cells(3, "L"), Cells(32, "L")).ClearContents Range(Cells(3, "E"), Cells(32, "K")).Interior.ColorIndex = 0 For i = 3 To 32 If WorksheetFunction.CountIf(Rows(i), Cells(i, "E")) > 2 Then If Cells(i, "E").Row Mod 2 = 1 Then Union(Cells(i, "E"), Cells(i, "H"), Cells(i, "K")).Interior.ColorIndex = 6 Cells(i, "L") = "OK" Else If Cells(i, "E").Row Mod 2 = 0 Then Union(Cells(i, "E"), Cells(i, "H"), Cells(i, "K")).Interior.ColorIndex = 40 Cells(i, "L") = "OK" End If End If End If Next If WorksheetFunction.CountIf(Range("L3:L32"), "OK") > 29 Then MsgBox "データチェックOK(^O^)b" End If End Sub

  • 公差を設定して判定するマクロ

    規格を設けて判定するマクロについて教えてください。 下記のようなマクロがあるとき、現在はE列、H列、K列が同じ数値の場合は 塗りつぶしが行われるようになっています。 これを少し改造して、B4セルに公差の数値を入力した時 E列の数値を基準とし、H列、K列がE列からB4セルに入力した公差内なら色を付けるような マクロを組みたいです。 例えばB4セルに2と入力してあるとします。 E列の数値が4.2だとした場合 H列は2.2、K列は6.2ならE列の数値の±2なので塗りつぶしされる。 E列の数値にB4セルの入力した数値の±をH列、K列を超える場合は 塗りつぶしは行わない、という感じです。 わかりずらい説明で申し訳ありませんが、宜しくお願いします。 Sub 判定仮() Dim i As Integer, j As Integer Range(Cells(3, "L"), Cells(32, "L")).ClearContents Range(Cells(3, "E"), Cells(32, "K")).Interior.ColorIndex = 0 For i = 3 To 32 If WorksheetFunction.CountIf(Rows(i), Cells(i, "E")) > 2 Then If Cells(i, "E").Row Mod 2 = 1 Then Union(Cells(i, "E"), Cells(i, "H"), Cells(i, "K")).Interior.ColorIndex = 6 Cells(i, "L") = "OK" Else If Cells(i, "E").Row Mod 2 = 0 Then Union(Cells(i, "E"), Cells(i, "H"), Cells(i, "K")).Interior.ColorIndex = 40 Cells(i, "L") = "OK" End If End If End If Next If WorksheetFunction.CountIf(Range("L3:L32"), "OK") > 29 Then MsgBox "データチェックOK(^O^)b" End If End Sub

  • 配達状況をIEからエクセルに落とすマクロが遅い

    【現在の状況】 毎日仕事で、 60件ぐらい、書類を発送しています。 伝票番号を入力すると、配達状況が分かるホームページがあります。 伝票番号の数だけ、 IEから配達状況を取得して、 エクセルに落とすマクロを書き、実行してみました。 60件もあるからなのか、 終わるまで10分ぐらいかかります。 【マクロの構成】 For...Nextステートメントで、伝票番号をループします。 そして、伝票番号の数だけ、サイトにナビゲートします。 ie.navigate "xxx.com/xxxx/=123456789 【質問】 プロなら、このように数が多い場合、 どのようにアプローチするのでしょうか? もっと早くなるアドバイスなど、もし思いついたことがあれば、教えて頂けると幸いです。 ありがとうございます・・・

    • noname#221405
    • 回答数2
  • 猫もオスとメスでは、体つきも違うのでしょうか?

    人間なら男と女じゃ体つきが違いますが 猫もオスとメスでは、体つきも違うのでしょうか? お尻を見ればわかりますが それ以外でもわかりますか?

    • ベストアンサー
  • USBハードディスク

    USBハードディスクって何ですか? ※OKWaveより補足:「ひかりTVのサービスやISPぷらら」についての質問です。

  • ExcelのVBA で実行エラー5

    ExcelのVBA で実行時エラー5のプロシージャの呼び出し、または引数が不正です。 と出るのですが、何が悪いのでしょうか? 引っかかる部分は下のコードの「tf.Writeline (Wl)」のところです。 'On Error GoTo ErrorHandler tf.Writeline (Wl) On Error GoTo 0 Wl = "" C = C + 1 End If 回答よろしくお願いします。

    • pigumin
    • 回答数2
  • アクセスで標準モジュールの中身を書き出したい

    http://officetanaka.net/excel/vba/vbe/05.htm の Sub Sample9() Dim Code As String Code = ThisWorkbook.VBProject.VBComponents("Module1").CodeModule.Lines(7, 5) MsgBox Code End Sub のエクセルではなく アクセスバージョンはないでしょうか? http://d.hatena.ne.jp/taka_2/20090907/p2 をアクセスの標準モジュールに貼り付けてみたのですが inFileName = WScript.Arguments(0) で実行時エラー424になってしまいます。

  • セル内改行された文字列の上段のみ消す

    いつもお世話になっています。 セル内改行された文字列の上段のみ消す方法を探しています。 たとえば、 セルA1に 12345       67890 のようにセル内で改行されたデータがあります。 そのうちの上段12345のみを削除したいのですが、 そういったことは可能でしょうか。 関数でもマクロでも方法があればなのですが。 よろしくお願いします。 

    • AkB373
    • 回答数4
  • Excelでの集計についてご教示いただきたいです。

    現在、Excelを使用し、集計を行っております。 皆様のお知恵をお借りできれば幸甚です。 【実現したいこと】 添付「画面.JPG」にある<Sheet 2>の様に情報を纏めております。 (セル内では改行をしております。) ↓ <Sheet 1>の様な形で、 「対象」を一番左にして、それぞれの対象に該当する情報がB列より右に入る様にしたいと考えております。 関数のみで対応できると非常に助かります。 そもそも関数では対応できない等のアドバイスもいただけると、他の方法を考える一歩となりますので、ありがたいです。 何卒、よろしくお願い申し上げます。

  • Excelでの集計についてご教示いただきたいです。

    現在、Excelを使用し、集計を行っております。 皆様のお知恵をお借りできれば幸甚です。 【実現したいこと】 添付「画面.JPG」にある<Sheet 2>の様に情報を纏めております。 (セル内では改行をしております。) ↓ <Sheet 1>の様な形で、 「対象」を一番左にして、それぞれの対象に該当する情報がB列より右に入る様にしたいと考えております。 関数のみで対応できると非常に助かります。 そもそも関数では対応できない等のアドバイスもいただけると、他の方法を考える一歩となりますので、ありがたいです。 何卒、よろしくお願い申し上げます。

  • 余計に困ってしまう問題をなんていうんでしたっけ?

    エクセルやアクセスなど 作りこんだ人が退職や移動してしまい 誰も保守できないなって 余計に困ってしまう問題をなんていうんでしたっけ?

  • エクセルA列の非表示の解除

    お世話になります。 エクセルで作業していたのですが、いつのまにかA1列が非表示になっていました。 再表示にしたいのですがどうすればいいのかがわかりません。 以下のURLに書いてあることをやってみましたが、すべてだめでした。 http://www.moug.net/tech/exopr/0030088.html 何か有効な方法はありますでしょうか。 よろしくお願いたします。

  • 全ファイル名をセルに出力するVBAプログラム

    VBA初心者です。 Aというディレクトリがあり、その中に1,2,3,4というフォルダがあります。 1には「apple1.csv」、「orange1.csv」、「banana1.csv」 2には「apple2.csv」、「orange2.csv」、「banana1.csv」 ・・・ 4には「apple4.csv」、「orange4.csv」、「banana4.csv」 が入っています。 この1から4のフォルダのapple1,apple2,apple3,apple4のファイルをとりだし、それぞれのA1~A10セルを新たなファイルに自動転記する(apple1はA1~A10,apple2はB10~B10・・・)といった具合のマクロを組みたいと思っています。 そこで以下のHPを参考にし、まずはトップディレクトリである「C:\Sample」の中のすべてのフォルダを表示するプログラムをつくってみようと試みました。 ホームページでは以下のソース Sub Sample() Call FileSearch("C:\Sample") End Sub Sub FileSearch(Path As String) Dim FSO As Object, Folder As Variant Set FSO = CreateObject("Scripting.FileSystemObject") For Each Folder In FSO.GetFolder(Path).SubFolders Debug.Print Folder.Path Call FileSearch(Folder.Path) ''見つかったフォルダを引数に指定して、自分自身を呼び出す Next Folder End Sub によってイミディエイトにフォルダを表示する仕様になっています。 実際、私もこのソースで実行したところ、イミディエイトにはトップディレクトリ以下の全ディレクトリ名が表示されました。 これを改良し、2列目に全ディレクトリ名が表示されるプログラムを組みました。ソースは以下です。 Sub Sample() Call FileSearch("C:\Sample") End Sub Sub FileSearch(Path As String) Dim FSO As Object, Folder As Variant ' Dim i As Integer ' i = 1 Set FSO = CreateObject("Scripting.FileSystemObject") For i = 1 To FSO.GetFolder(Path).SubFolders Debug.Print Folder.Path Call FileSearch(Folder.Path) ''見つかったフォルダを引数に指定して、自分自身を呼び出す i = i + 1 Cells(i, 2) = Folder Next i End Sub これを実行したところ、2列目にはすべてのディレクトリは表示されず、一部のディレクトリしか表示されません。 改良の仕方がおそらくまずいと思うのですが、何か私が根本的に間違えている気がするので、ご指摘いただけたら幸いです。

  • 全ファイル名をセルに出力するVBAプログラム

    VBA初心者です。 Aというディレクトリがあり、その中に1,2,3,4というフォルダがあります。 1には「apple1.csv」、「orange1.csv」、「banana1.csv」 2には「apple2.csv」、「orange2.csv」、「banana1.csv」 ・・・ 4には「apple4.csv」、「orange4.csv」、「banana4.csv」 が入っています。 この1から4のフォルダのapple1,apple2,apple3,apple4のファイルをとりだし、それぞれのA1~A10セルを新たなファイルに自動転記する(apple1はA1~A10,apple2はB10~B10・・・)といった具合のマクロを組みたいと思っています。 そこで以下のHPを参考にし、まずはトップディレクトリである「C:\Sample」の中のすべてのフォルダを表示するプログラムをつくってみようと試みました。 ホームページでは以下のソース Sub Sample() Call FileSearch("C:\Sample") End Sub Sub FileSearch(Path As String) Dim FSO As Object, Folder As Variant Set FSO = CreateObject("Scripting.FileSystemObject") For Each Folder In FSO.GetFolder(Path).SubFolders Debug.Print Folder.Path Call FileSearch(Folder.Path) ''見つかったフォルダを引数に指定して、自分自身を呼び出す Next Folder End Sub によってイミディエイトにフォルダを表示する仕様になっています。 実際、私もこのソースで実行したところ、イミディエイトにはトップディレクトリ以下の全ディレクトリ名が表示されました。 これを改良し、2列目に全ディレクトリ名が表示されるプログラムを組みました。ソースは以下です。 Sub Sample() Call FileSearch("C:\Sample") End Sub Sub FileSearch(Path As String) Dim FSO As Object, Folder As Variant ' Dim i As Integer ' i = 1 Set FSO = CreateObject("Scripting.FileSystemObject") For i = 1 To FSO.GetFolder(Path).SubFolders Debug.Print Folder.Path Call FileSearch(Folder.Path) ''見つかったフォルダを引数に指定して、自分自身を呼び出す i = i + 1 Cells(i, 2) = Folder Next i End Sub これを実行したところ、2列目にはすべてのディレクトリは表示されず、一部のディレクトリしか表示されません。 改良の仕方がおそらくまずいと思うのですが、何か私が根本的に間違えている気がするので、ご指摘いただけたら幸いです。

  • 全ファイル名をセルに出力するVBAプログラム

    VBA初心者です。 Aというディレクトリがあり、その中に1,2,3,4というフォルダがあります。 1には「apple1.csv」、「orange1.csv」、「banana1.csv」 2には「apple2.csv」、「orange2.csv」、「banana1.csv」 ・・・ 4には「apple4.csv」、「orange4.csv」、「banana4.csv」 が入っています。 この1から4のフォルダのapple1,apple2,apple3,apple4のファイルをとりだし、それぞれのA1~A10セルを新たなファイルに自動転記する(apple1はA1~A10,apple2はB10~B10・・・)といった具合のマクロを組みたいと思っています。 そこで以下のHPを参考にし、まずはトップディレクトリである「C:\Sample」の中のすべてのフォルダを表示するプログラムをつくってみようと試みました。 ホームページでは以下のソース Sub Sample() Call FileSearch("C:\Sample") End Sub Sub FileSearch(Path As String) Dim FSO As Object, Folder As Variant Set FSO = CreateObject("Scripting.FileSystemObject") For Each Folder In FSO.GetFolder(Path).SubFolders Debug.Print Folder.Path Call FileSearch(Folder.Path) ''見つかったフォルダを引数に指定して、自分自身を呼び出す Next Folder End Sub によってイミディエイトにフォルダを表示する仕様になっています。 実際、私もこのソースで実行したところ、イミディエイトにはトップディレクトリ以下の全ディレクトリ名が表示されました。 これを改良し、2列目に全ディレクトリ名が表示されるプログラムを組みました。ソースは以下です。 Sub Sample() Call FileSearch("C:\Sample") End Sub Sub FileSearch(Path As String) Dim FSO As Object, Folder As Variant ' Dim i As Integer ' i = 1 Set FSO = CreateObject("Scripting.FileSystemObject") For i = 1 To FSO.GetFolder(Path).SubFolders Debug.Print Folder.Path Call FileSearch(Folder.Path) ''見つかったフォルダを引数に指定して、自分自身を呼び出す i = i + 1 Cells(i, 2) = Folder Next i End Sub これを実行したところ、2列目にはすべてのディレクトリは表示されず、一部のディレクトリしか表示されません。 改良の仕方がおそらくまずいと思うのですが、何か私が根本的に間違えている気がするので、ご指摘いただけたら幸いです。

  • エクセルマクロ 特定の文字入力の際の処理(2)

    お世話になります。 以前、下記質問をし、締め切ったのですが、もう一点、教えていただきたい点がありました。 質問 エクセルマクロで、sheet1のE列の6~30行に指定する文字が入力された際、 B列のその同じ行にある文字を取得し、その取得した文字をsheet3のC6から K6まで書き出していきたいのですが、どのようにしたらよいでしょうか? ご回答 Private Sub Worksheet_Change(ByVal Target As Range)   Dim i As Long   Dim r As Range   Const 指定文字 As String = "X"   Set r = Range("E6:E30")   If Target.Count > 1 Then Exit Sub   If Intersect(r, Target) Is Nothing Then     Exit Sub   End If   If Target.Value <> 指定文字 Then     Exit Sub   Else     '大文字小文字を区別する場合     i = ActiveSheet.Evaluate( _       "SumProduct(EXACT(" & r.Address & ",""" & 指定文字 & """)*1)")     '大文字小文字を区別しない場合     i = WorksheetFunction.CountIf(r, 指定文字)          Application.EnableEvents = False     Worksheets("Sheet3").Cells(6, i + 2) = _       Target.Offset(, -3)     Application.EnableEvents = True   End If End Sub このご回答を、 取得した文字をsheet3のC6からK6までに4列毎に書き出して いく場合にはコードをどのようにしていけば良いのでしょうか。 C6→H6→M6→・・・ すみません、再度お願い致します。

    • na714
    • 回答数2
  • エクセル外部リンクのセル番地まで知る方法

    エクセル2013です。他のエクセルブックからリンクを張っているとき、以下のマクロで調べることがわかりましたけど、そこでわかるのは、ブック名どまりであって、シートやセル番地はわかりません。わかりたいのは、こっちのブックのどのシートのどのセルが、あっちのブックのどのシートのどのセルとつながっているかです。 わかる方法はないものでしょうか。なお、このマクロは、以下のホームページに書いてあったものです。 https://www.moug.net/tech/exvba/0060039.html Sub GetLinkInfromation() Dim Var As Variant Dim Msg As String Dim i As Integer Var = ActiveWorkbook.LinkSources(xlExcelLinks) For i = 1 To UBound(Var) Msg = Msg & Var(i) & vbCrLf Next i MsgBox Msg End Sub