end-u の回答履歴

全1157件中241~260件表示
  • ワード2007とエクセル2007の記号と特殊文字

    ワード2007には、 挿入タブ→数式→組み込み→(いろいろな数式を選択) という機能が付いていますが、 エクセル2007には、 同じような機能は付いてないのでしょうか? 分厚いマニュアル本にもそれらしい記述はないし、 エクセルの方には挿入タブ→数式という機能が 見受けられないので・・・。あると便利なのですが・・・。

  • エクセル2010にてタブで関数変更できますか

    ご回答頂ける皆さんにはいつもお世話になっいます。今回もよろしくお願いします。 今、制作している表は株式の収支表なのですが株には買う場合と売る場合があります。 株を買って売却した場合の関数はここで教えてもらい無事出来ました。 今回は株式収支表の売り設定なので、空売りの説明もしたいのですが出来るだけ 簡素に説明しているのでわかりにくい場合があると思います。 そのあたりは株取引のご経験がない方には申し訳ないと思っています。 【質問・なにがしたいのか】 今回は売りで取引があった場合にその関数を教えて頂きたいのです。 買いの場合は図の左端にあります青字で買とある列には関数は下記のように入れています。 約定合計    =IF(ISBLANK(H4),"",G4*H4) 決算合計    =IF(ISBLANK(I4),"",G4*I4) 利益合計    =IF(ISBLANK(I4),"",M4-L4) 個別収益率% =IF(OR(H4="",I4=""),"",(M4-L4)/(G4*H4)) 上記のように関数を入れています。 これを売りで取引する場合にどのような関数を入れたらよいでしょうか。 株式売買の空売りとは 100円で売り建て(証券会社から一時的に借りて)売った株が値下がりして90円になったとします。 計算すると 100円-10円=90円 株価が90円になったわけですので売りの場合には証券会社に返済する金額は90円なので10円の利益となります。 今回は売りの場合の関数設定をタブを使って変更できるか教えて頂きたく思います。 また画像の左端には買、売、買越、売越、とあります。(買越、売越は前月をまたいで決算した場合に使います。) 株式取引には買から入る場合と売りから入る場合がありますので 左端でタブを買か売りを選択してから数値を入力していきたいのですが このタブを買、売り、買越、売越と選択することに関数も変更できるようにするにはどの様にしたらいいでしょうか? この左のタブは▼マークをつかってます。 タブ設定の方法は条件付き書式→セルの強調表示ルール→指定の値に等しい、にて設定しています。 買を選択した場合には買いの関数に、売を選択した場合には売りの関数に変更することは出来ますか。 出来る場合にはどの様な設定手順をとればいいいでしょうか よろしくお願いいたします。 今回の質問はややこしくて回答者様が困惑しないか不安なのですが あまり長文で説明するのも余計わかりにくいと思いましたので簡素に書いています。 ご不明な点があると思いますが どうぞよろしくお願いいたします。

  • コンボボックスの値で参照するワークシートを変えたい

    ●質問の主旨 ComboBox3で選択した文字列によって、参照するワークシートを 変え、そのワークシートからComboBox4に代入するには、以下の コードをどのように書き換えればよいでしょうか? ご教示願います。 ●質問の補足 添付画像でComboBox3に「営業」、「技術」、「総務」まで 入力することによってそれぞれ3つのワークシートを参照 させたいと考えています。 ・「営業」→中分類(営業)シート ・「技術」→中分類(技術)シート ・「総務」→中分類(総務)シート そして各シートにはそれぞれ異なった仕事内容の表が 既に作成されています。もしComboBox3で「営業」を 選択したなら、ComboBox4で中分類(営業)シートに 記載されている仕事内容を選択できるようにしたいと 考えています。 そのためSelect Caseステートメントを使って ComboBox3の内容によってComboBox4の内容を変える コードを作成したつもりです。 ●現在の問題点 1.下記のコードを実行しようとすると、 「実行時エラー91 オブジェクト変数またはWithブロック変数が設定されていません」 というエラーが返されます。 2.デバックするとユーザーフォームではなく、 標準モジュールの2行目 UserForm1.Show が黄色くなります。 ●コード (標準モジュール) Sub 日報記入ダイアログ() UserForm1.Show End Sub (ユーザーフォーム) Option Explicit Private Sub ComboBox4_Change() End Sub 'ユーザーフォームの初期化 Private Sub UserForm_Initialize() Dim r As Range Dim n As Range Dim d As Range Dim t As Range With Worksheets(2) Set r = .Range("C3", .Cells(.Rows.Count, 2).End(xlUp)) End With With Me.ComboBox1 .ColumnCount = 2 .ColumnWidths = ";0" .List = r.Value End With With Worksheets(3) Set n = .Range("C3", .Cells(.Rows.Count, 2).End(xlUp)) End With With Me.ComboBox2 .ColumnCount = 2 .ColumnWidths = ";0" .List = n.Value End With With Worksheets(4) Set d = .Range("C3", .Cells(.Rows.Count, 2).End(xlUp)) End With With Me.ComboBox3 .ColumnCount = 2 .ColumnWidths = ";0" .List = d.Value End With '中分類のComboBox4は「大分類」の選択内容によって参照するワークシートが変わる Select Case t Case Is = ComboBox3("営業") With Worksheets(5) Set t = .Range("C3", .Cells(.Rows.Count, 2).End(xlUp)) End With With Me.ComboBox4 .ColumnCount = 2 .ColumnWidths = ";0" .List = t.Value End With Case Is = ComboBox3("技術") With Worksheets(6) Set t = .Range("C3", .Cells(.Rows.Count, 2).End(xlUp)) End With With Me.ComboBox4 .ColumnCount = 2 .ColumnWidths = ";0" .List = t.Value End With Case Is = ComboBox3("総務") With Worksheets(7) Set t = .Range("C3", .Cells(.Rows.Count, 2).End(xlUp)) End With With Me.ComboBox4 .ColumnCount = 2 .ColumnWidths = ";0" .List = t.Value End With End Select 'メモリの解放 Set r = Nothing Set n = Nothing Set d = Nothing Set t = Nothing 'その他の初期値 TextBox3.Value = Worksheets(1).Range("a10000").End(xlUp).Row txtdate = Date End Sub 'ComboBox1をクリックしたときの処理 Private Sub ComboBox1_Click() With Me.ComboBox1 Me.Label19.Caption = .List(.ListIndex, 1) End With End Sub 'ComboBox2をクリックしたときの処理 Private Sub ComboBox2_Click() With Me.ComboBox2 Me.Label20.Caption = .List(.ListIndex, 1) End With End Sub 'ComboBox2をクリックしたときの処理(中分類の仕事によってスターマークが変わる) 'フォームからデータベースへの転記 Private Sub CommandButton3_Click() Dim Rowpos As Long Dim ColPos As Long Rowpos = Worksheets(1).Range("a10000").End(xlUp).Row ColPos = 1 Rowpos = Rowpos + 1 With Worksheets(1) .Cells(Rowpos, ColPos) = TextBox3.Value .Cells(Rowpos, ColPos + 1) = txtdate.Value .Cells(Rowpos, ColPos + 2) = Label19.Caption .Cells(Rowpos, ColPos + 3) = ComboBox1.Text .Cells(Rowpos, ColPos + 4) = ComboBox2.Text .Cells(Rowpos, ColPos + 5) = Label20.Caption .Cells(Rowpos, ColPos + 6) = ComboBox3.Text End With 'Noの加算 TextBox3.Value = TextBox3.Value + 1 Call Clearcmb End Sub 'データベース入力後にコンボボックスを空欄にする Private Sub Clearcmb() ComboBox1.Text = "" ComboBox2.Text = "" ComboBox3.Text = "" End Sub 'ユーザーフォームの終了 Private Sub CommandButton5_Click() Unload UserForm1 End End Sub 以上よろしくお願い申し上げます。使用機種はWindowsVistaで、 Excel2007です。私はVBA初心者です。添付の画像でのユーザーフォームは プリントスクリーンでWorksheet(1)に貼り付けています。

  • コンボボックスの値で参照するワークシートを変えたい

    ●質問の主旨 ComboBox3で選択した文字列によって、参照するワークシートを 変え、そのワークシートからComboBox4に代入するには、以下の コードをどのように書き換えればよいでしょうか? ご教示願います。 ●質問の補足 添付画像でComboBox3に「営業」、「技術」、「総務」まで 入力することによってそれぞれ3つのワークシートを参照 させたいと考えています。 ・「営業」→中分類(営業)シート ・「技術」→中分類(技術)シート ・「総務」→中分類(総務)シート そして各シートにはそれぞれ異なった仕事内容の表が 既に作成されています。もしComboBox3で「営業」を 選択したなら、ComboBox4で中分類(営業)シートに 記載されている仕事内容を選択できるようにしたいと 考えています。 そのためSelect Caseステートメントを使って ComboBox3の内容によってComboBox4の内容を変える コードを作成したつもりです。 ●現在の問題点 1.下記のコードを実行しようとすると、 「実行時エラー91 オブジェクト変数またはWithブロック変数が設定されていません」 というエラーが返されます。 2.デバックするとユーザーフォームではなく、 標準モジュールの2行目 UserForm1.Show が黄色くなります。 ●コード (標準モジュール) Sub 日報記入ダイアログ() UserForm1.Show End Sub (ユーザーフォーム) Option Explicit Private Sub ComboBox4_Change() End Sub 'ユーザーフォームの初期化 Private Sub UserForm_Initialize() Dim r As Range Dim n As Range Dim d As Range Dim t As Range With Worksheets(2) Set r = .Range("C3", .Cells(.Rows.Count, 2).End(xlUp)) End With With Me.ComboBox1 .ColumnCount = 2 .ColumnWidths = ";0" .List = r.Value End With With Worksheets(3) Set n = .Range("C3", .Cells(.Rows.Count, 2).End(xlUp)) End With With Me.ComboBox2 .ColumnCount = 2 .ColumnWidths = ";0" .List = n.Value End With With Worksheets(4) Set d = .Range("C3", .Cells(.Rows.Count, 2).End(xlUp)) End With With Me.ComboBox3 .ColumnCount = 2 .ColumnWidths = ";0" .List = d.Value End With '中分類のComboBox4は「大分類」の選択内容によって参照するワークシートが変わる Select Case t Case Is = ComboBox3("営業") With Worksheets(5) Set t = .Range("C3", .Cells(.Rows.Count, 2).End(xlUp)) End With With Me.ComboBox4 .ColumnCount = 2 .ColumnWidths = ";0" .List = t.Value End With Case Is = ComboBox3("技術") With Worksheets(6) Set t = .Range("C3", .Cells(.Rows.Count, 2).End(xlUp)) End With With Me.ComboBox4 .ColumnCount = 2 .ColumnWidths = ";0" .List = t.Value End With Case Is = ComboBox3("総務") With Worksheets(7) Set t = .Range("C3", .Cells(.Rows.Count, 2).End(xlUp)) End With With Me.ComboBox4 .ColumnCount = 2 .ColumnWidths = ";0" .List = t.Value End With End Select 'メモリの解放 Set r = Nothing Set n = Nothing Set d = Nothing Set t = Nothing 'その他の初期値 TextBox3.Value = Worksheets(1).Range("a10000").End(xlUp).Row txtdate = Date End Sub 'ComboBox1をクリックしたときの処理 Private Sub ComboBox1_Click() With Me.ComboBox1 Me.Label19.Caption = .List(.ListIndex, 1) End With End Sub 'ComboBox2をクリックしたときの処理 Private Sub ComboBox2_Click() With Me.ComboBox2 Me.Label20.Caption = .List(.ListIndex, 1) End With End Sub 'ComboBox2をクリックしたときの処理(中分類の仕事によってスターマークが変わる) 'フォームからデータベースへの転記 Private Sub CommandButton3_Click() Dim Rowpos As Long Dim ColPos As Long Rowpos = Worksheets(1).Range("a10000").End(xlUp).Row ColPos = 1 Rowpos = Rowpos + 1 With Worksheets(1) .Cells(Rowpos, ColPos) = TextBox3.Value .Cells(Rowpos, ColPos + 1) = txtdate.Value .Cells(Rowpos, ColPos + 2) = Label19.Caption .Cells(Rowpos, ColPos + 3) = ComboBox1.Text .Cells(Rowpos, ColPos + 4) = ComboBox2.Text .Cells(Rowpos, ColPos + 5) = Label20.Caption .Cells(Rowpos, ColPos + 6) = ComboBox3.Text End With 'Noの加算 TextBox3.Value = TextBox3.Value + 1 Call Clearcmb End Sub 'データベース入力後にコンボボックスを空欄にする Private Sub Clearcmb() ComboBox1.Text = "" ComboBox2.Text = "" ComboBox3.Text = "" End Sub 'ユーザーフォームの終了 Private Sub CommandButton5_Click() Unload UserForm1 End End Sub 以上よろしくお願い申し上げます。使用機種はWindowsVistaで、 Excel2007です。私はVBA初心者です。添付の画像でのユーザーフォームは プリントスクリーンでWorksheet(1)に貼り付けています。

  • エクセル2010にてタブで関数変更できますか

    ご回答頂ける皆さんにはいつもお世話になっいます。今回もよろしくお願いします。 今、制作している表は株式の収支表なのですが株には買う場合と売る場合があります。 株を買って売却した場合の関数はここで教えてもらい無事出来ました。 今回は株式収支表の売り設定なので、空売りの説明もしたいのですが出来るだけ 簡素に説明しているのでわかりにくい場合があると思います。 そのあたりは株取引のご経験がない方には申し訳ないと思っています。 【質問・なにがしたいのか】 今回は売りで取引があった場合にその関数を教えて頂きたいのです。 買いの場合は図の左端にあります青字で買とある列には関数は下記のように入れています。 約定合計    =IF(ISBLANK(H4),"",G4*H4) 決算合計    =IF(ISBLANK(I4),"",G4*I4) 利益合計    =IF(ISBLANK(I4),"",M4-L4) 個別収益率% =IF(OR(H4="",I4=""),"",(M4-L4)/(G4*H4)) 上記のように関数を入れています。 これを売りで取引する場合にどのような関数を入れたらよいでしょうか。 株式売買の空売りとは 100円で売り建て(証券会社から一時的に借りて)売った株が値下がりして90円になったとします。 計算すると 100円-10円=90円 株価が90円になったわけですので売りの場合には証券会社に返済する金額は90円なので10円の利益となります。 今回は売りの場合の関数設定をタブを使って変更できるか教えて頂きたく思います。 また画像の左端には買、売、買越、売越、とあります。(買越、売越は前月をまたいで決算した場合に使います。) 株式取引には買から入る場合と売りから入る場合がありますので 左端でタブを買か売りを選択してから数値を入力していきたいのですが このタブを買、売り、買越、売越と選択することに関数も変更できるようにするにはどの様にしたらいいでしょうか? この左のタブは▼マークをつかってます。 タブ設定の方法は条件付き書式→セルの強調表示ルール→指定の値に等しい、にて設定しています。 買を選択した場合には買いの関数に、売を選択した場合には売りの関数に変更することは出来ますか。 出来る場合にはどの様な設定手順をとればいいいでしょうか よろしくお願いいたします。 今回の質問はややこしくて回答者様が困惑しないか不安なのですが あまり長文で説明するのも余計わかりにくいと思いましたので簡素に書いています。 ご不明な点があると思いますが どうぞよろしくお願いいたします。

  • エクセルのマクロでのプリンタ自動切替について

    エクセルのマクロ初心者ですが、ご教示いただければ幸いです。 業務で日々使用する様式をボタン一つで印刷できるよう、マクロを作成中です。 エクセルのファイルは共有ファイルサーバーに保存していて、各端末(例:WS0001、WS0002、WS0003…)から印刷したいと考えています。 各端末の「通常使うプリンタ」はPR0001なのですが、この様式はWS0001のUSBポートに繋がったPR0002から出力する必要があります。 WS0001とWS0002他から見た場合にプリンタのパスが異なるため、現状では ActiveSheet.PrintOut ActivePrinter:="pr0002" ActiveSheet.PrintOut ActivePrinter:="\\Ws0001\pr0002" と2つのマクロを別々のボタンに割り当てていますが、ボタンを押し間違えることがあり、何とか1つのマクロにできないかと考えています。 例えば「"pr0002"が無い場合は"\\Ws0001\pr0002"から出力しなさい」といような記述は可能でしょうか? On Error でできるのかと考え、 On Error GoTo 0 ActiveSheet.PrintOut ActivePrinter:="pr0002" On Error GoTo 0 ActiveSheet.PrintOut ActivePrinter:="\\Ws0001\pr0002" あるいは On Error GoTo 0 ActiveSheet.PrintOut ActivePrinter:="pr0002" ActiveSheet.PrintOut ActivePrinter:="\\Ws0001\pr0002" と記述してみましたが、何故かPR0001とPR0002と2枚出力されて、上手くいきません。 ネットワーク上のプリンタ出力先の記述は、 Application.ActivePrinter = "\\Ws0001\pr0002 on NeXX:" ExecuteExcel4Macro _ "PRINT(1,,,1,,,,,,,,2,"""\\Ws0001\pr0002 on NeXX:"",,TRUE,,FALSE)" と記述した方が確実なようですが、端末によってXXの数字が異なるようで、エラーになることがあります。 何卒よろしくお願いいたします。

  • エクセル2010にてタブで関数変更できますか

    ご回答頂ける皆さんにはいつもお世話になっいます。今回もよろしくお願いします。 今、制作している表は株式の収支表なのですが株には買う場合と売る場合があります。 株を買って売却した場合の関数はここで教えてもらい無事出来ました。 今回は株式収支表の売り設定なので、空売りの説明もしたいのですが出来るだけ 簡素に説明しているのでわかりにくい場合があると思います。 そのあたりは株取引のご経験がない方には申し訳ないと思っています。 【質問・なにがしたいのか】 今回は売りで取引があった場合にその関数を教えて頂きたいのです。 買いの場合は図の左端にあります青字で買とある列には関数は下記のように入れています。 約定合計    =IF(ISBLANK(H4),"",G4*H4) 決算合計    =IF(ISBLANK(I4),"",G4*I4) 利益合計    =IF(ISBLANK(I4),"",M4-L4) 個別収益率% =IF(OR(H4="",I4=""),"",(M4-L4)/(G4*H4)) 上記のように関数を入れています。 これを売りで取引する場合にどのような関数を入れたらよいでしょうか。 株式売買の空売りとは 100円で売り建て(証券会社から一時的に借りて)売った株が値下がりして90円になったとします。 計算すると 100円-10円=90円 株価が90円になったわけですので売りの場合には証券会社に返済する金額は90円なので10円の利益となります。 今回は売りの場合の関数設定をタブを使って変更できるか教えて頂きたく思います。 また画像の左端には買、売、買越、売越、とあります。(買越、売越は前月をまたいで決算した場合に使います。) 株式取引には買から入る場合と売りから入る場合がありますので 左端でタブを買か売りを選択してから数値を入力していきたいのですが このタブを買、売り、買越、売越と選択することに関数も変更できるようにするにはどの様にしたらいいでしょうか? この左のタブは▼マークをつかってます。 タブ設定の方法は条件付き書式→セルの強調表示ルール→指定の値に等しい、にて設定しています。 買を選択した場合には買いの関数に、売を選択した場合には売りの関数に変更することは出来ますか。 出来る場合にはどの様な設定手順をとればいいいでしょうか よろしくお願いいたします。 今回の質問はややこしくて回答者様が困惑しないか不安なのですが あまり長文で説明するのも余計わかりにくいと思いましたので簡素に書いています。 ご不明な点があると思いますが どうぞよろしくお願いいたします。

  • データベースの番号を1つずつ加算していくには?

    ●質問の主旨 データベースにデータを入力していくたびに そのデータに「入力No.」1を振り、以後データが増えるたびに 番号を1つずつ増やしていきたいと考えています。 A2→1 A3→2 A4→3 A5→4 という具合に、途中でブックを保存して再度立ち上げても 常に連続した数字を入力したいと思っています。 以下のコードをどのように書き改めばよいでしょうか? ご教示願います。 ●現在の問題点 1.「データベース入力」のボタンを押すと A2セルに「入力No.」2が入力されてしまう 2.ブックを閉じない限り、入力した番号は 2のままで転記されてしまう。 3.ブックを保存して閉じた後、再度立ち上げ「入力No.」を 入力しようとすると今度は4が入力される。 4.その後はブックを保存して閉じた後、再度立ち上げても 4が入力され続ける。 ●コード Option Explicit 'ユーザーフォームの初期化 Private Sub UserForm_Initialize() TextBox3.Value = Worksheets(1).Range("A2").Value + 1 txtdate = Date Call No End Sub 'フォームからデータベースへの転記 Private Sub CommandButton3_Click() Dim Rowpos As Long Dim ColPos As Long Rowpos = Worksheets(1).Range("a10000").End(xlUp).Row ColPos = 1 Rowpos = Rowpos + 1 With Worksheets(1) .Cells(Rowpos, ColPos) = TextBox3.Value .Cells(Rowpos, ColPos + 1) = txtdate.Value End With End Sub 'Noの加算 Private Sub No() Dim i As Long For i = 1 To 1 Step 1 TextBox3.Value = TextBox3.Value + 1 Next End Sub 'ユーザーフォームの終了 Private Sub CommandButton5_Click() Unload UserForm1 End End Sub 以上よろしくお願い申し上げます。使用機種はWindowsVistaで、 Excel2007です。私はVBA初心者です。

  • ユーザーフォームをWorkSheet(1)に固定

    ●質問の主旨 WorkSheet(1)(「柴田8月分」)にユーザーフォームを固定的に 表示させつつ、WorkSheet(1)以降のWorkSheet(2)、 WorkSheet(3)、WorkSheet(4)の表を参照しながら ComboBox1、ComboBox2、ComboBox3にリストを 選択して、データベースに入力したいと考えています。 以下のコードをどのように書き換えれば良いでしょうか? ご教示のほどよろしくお願い申し上げます。 ●質問の補足 現在のコードでは、ComboBox1、ComboBox2、ComboBox3を それぞれ選択しているとユーザーフォームがそれぞれ WorkSheet(2)、WorkSheet(1)(顧客リスト)、WorkSheet(3)(社員名)、 WorkSheet(4)(大分類)にとんでしまいます。 転記入力が終了すると、また手作業でWorkSheet(1)に戻らなければなりません。 その手作業を回避したいと考えています。 なお添付画像はComboBox1の選択前なのでWorkSheet(1) に留まってくれています。 ●コード Option Explicit 'ユーザーフォームの初期化 Private Sub UserForm_Initialize() Dim r As Range Dim n As Range Dim d As Range With Worksheets(2) Set r = .Range("C3", .Cells(.Rows.Count, 2).End(xlUp)) End With With Me.ComboBox1 .ColumnCount = 2 .ColumnWidths = ";0" .List = r.Value End With With Worksheets(3) Set n = .Range("C3", .Cells(.Rows.Count, 2).End(xlUp)) End With With Me.ComboBox2 .ColumnCount = 2 .ColumnWidths = ";0" .List = n.Value End With With Worksheets(4) Set d = .Range("C3", .Cells(.Rows.Count, 2).End(xlUp)) End With With Me.ComboBox3 .ColumnCount = 2 .ColumnWidths = ";0" .List = d.Value End With Set r = Nothing Set n = Nothing Set d = Nothing TextBox3.Value = Worksheets(1).Range("A2").Value + 1 txtdate = Date OptionButton1.Value = True End Sub 'ComboBox1をクリックしたときの処理 Private Sub ComboBox1_Click() Worksheets(2).Select With Me.ComboBox1 Me.Label19.Caption = .List(.ListIndex, 1) Worksheets(2).Select Replace:=False End With End Sub 'ComboBox2をクリックしたときの処理 Private Sub ComboBox2_Click() Worksheets(3).Select With Me.ComboBox2 Me.Label20.Caption = .List(.ListIndex, 1) Worksheets(3).Select Replace:=False End With End Sub 'フォームからデータベースへの転記 Private Sub CommandButton3_Click() Dim Rowpos As Long Dim ColPos As Long Rowpos = Worksheets("柴田8月分").Range("a10000").End(xlUp).Row ColPos = 1 Rowpos = Rowpos + 1 With Worksheets("柴田8月分") .Cells(Rowpos, ColPos) = TextBox3.Value .Cells(Rowpos, ColPos + 1) = txtdate.Value .Cells(Rowpos, ColPos + 2) = Label19.Caption .Cells(Rowpos, ColPos + 3) = ComboBox1.Text .Cells(Rowpos, ColPos + 4) = ComboBox2.Text .Cells(Rowpos, ColPos + 5) = Label20.Caption .Cells(Rowpos, ColPos + 6) = ComboBox3.Text End With 'Noの加算 Dim i As Long For i = 1 To 1 Step 1 TextBox3.Value = TextBox3.Value + 1 Next Call Clearcmb End Sub 'データベース入力後にコンボボックスを空欄にする Private Sub Clearcmb() ComboBox1.Text = "" ComboBox2.Text = "" ComboBox3.Text = "" End Sub 'ユーザーフォームの終了 Private Sub CommandButton5_Click() Unload UserForm1 End End Sub 以上よろしくお願い申し上げます。使用機種はWindowsVistaで、 Excel2007です。私はVBA初心者です。

  • VLookup関数を使ってラベルに表記させるには?

    ●質問の主旨 1.コンボボックスから選択した顧客名によって ラベルに顧客種別を表記させるにはどのように コードを書き換えればよいでしょうか? 2.またどの顧客が選ばれても、顧客種別に  対応して表記させるにはコードが足りない  ような気がします。もしそのような対応が  できるコードがあれば、合わせてご教示  ください ●質問の補足 添付の画像のユーザーフォームのコンボボックスから 顧客名を選んで、その顧客名によって別シートの顧客 一覧表から ・「新規顧客」 ・「既存顧客」 ・「自社」 のどれに当たるかVLookup関数を使ってラベルに 表記させたいと考えております。 以下のコードを記述しましたが、 「メソッドまたはメンバが見つかりません」と エラーが返されてしまいます。 ●ユーザーフォームの構成 「顧客名」→Label3 「顧客リスト」→ComboBox1 「顧客種別」→Label4 なお、ユーザーフォームはプリントスクリーンで 貼り付けており、本来はWorksheets(1)に表示されます。 ●コード 'ユーザーフォームの初期化 Private Sub UserForm_Initialize() With ComboBox1 .AddItem "NPO法人亀山社中" .AddItem "土佐商会株式会社" .AddItem "(株)薩摩示現流" .AddItem "越後屋株式会社" .AddItem "藩校コンサルティング(株)" .AddItem "株式会社ラーニングバー" .AddItem "自社"  End With End Sub '顧客リストが選択された時の顧客種別の表記 Private Sub ComboBox1_Click() Worksheets(2).Activate Label4.Value = Application.WorksheetsFunction.VLookup("B4", Range("B3:C8"), 2, 1) End Sub 以上よろしくお願い申し上げます。使用機種はWindowsVistaで、 Excel2007です。私はVBA初心者です。

  • 【Excel 2007】クエリが実行できません

    データタブ⇒その他のデータソース⇒Microsoft Query⇒クエリウィザードを使ってデータ抽出を行ないました。同一ブック内に元となるデータシート、抽出データシートを作成しています。こここまではうまくできました。しかし、作成したブックを同一パソコンの別フォルダに移動したところ、エラーが出てデータ接続ができません。具体的には、「実行時エラー'1004' 一般エラー ODBCエラー」がでます。ブックを元の場所に戻すとエラーが出ずきちんと集計できます。作成したブックを移動してもデータ接続を行い、クエリがきちんと実行できるようにするにはどうしたら解決するでしょうか?もう一度ウィザードからやるのは大変です。 データ参照場所を再設定すればできそうなのですが、やり方が分かりません。例えばマイドキュメント⇒デスクトップにブックを移動した場合だとどのようになりますか?自分でも調べて試してみたのですがうまくできません。よろしくお願いします。

  • エクセル2010にてタブで関数変更できますか

    ご回答頂ける皆さんにはいつもお世話になっいます。今回もよろしくお願いします。 今、制作している表は株式の収支表なのですが株には買う場合と売る場合があります。 株を買って売却した場合の関数はここで教えてもらい無事出来ました。 今回は株式収支表の売り設定なので、空売りの説明もしたいのですが出来るだけ 簡素に説明しているのでわかりにくい場合があると思います。 そのあたりは株取引のご経験がない方には申し訳ないと思っています。 【質問・なにがしたいのか】 今回は売りで取引があった場合にその関数を教えて頂きたいのです。 買いの場合は図の左端にあります青字で買とある列には関数は下記のように入れています。 約定合計    =IF(ISBLANK(H4),"",G4*H4) 決算合計    =IF(ISBLANK(I4),"",G4*I4) 利益合計    =IF(ISBLANK(I4),"",M4-L4) 個別収益率% =IF(OR(H4="",I4=""),"",(M4-L4)/(G4*H4)) 上記のように関数を入れています。 これを売りで取引する場合にどのような関数を入れたらよいでしょうか。 株式売買の空売りとは 100円で売り建て(証券会社から一時的に借りて)売った株が値下がりして90円になったとします。 計算すると 100円-10円=90円 株価が90円になったわけですので売りの場合には証券会社に返済する金額は90円なので10円の利益となります。 今回は売りの場合の関数設定をタブを使って変更できるか教えて頂きたく思います。 また画像の左端には買、売、買越、売越、とあります。(買越、売越は前月をまたいで決算した場合に使います。) 株式取引には買から入る場合と売りから入る場合がありますので 左端でタブを買か売りを選択してから数値を入力していきたいのですが このタブを買、売り、買越、売越と選択することに関数も変更できるようにするにはどの様にしたらいいでしょうか? この左のタブは▼マークをつかってます。 タブ設定の方法は条件付き書式→セルの強調表示ルール→指定の値に等しい、にて設定しています。 買を選択した場合には買いの関数に、売を選択した場合には売りの関数に変更することは出来ますか。 出来る場合にはどの様な設定手順をとればいいいでしょうか よろしくお願いいたします。 今回の質問はややこしくて回答者様が困惑しないか不安なのですが あまり長文で説明するのも余計わかりにくいと思いましたので簡素に書いています。 ご不明な点があると思いますが どうぞよろしくお願いいたします。

  • VLookup関数を使ってラベルに表記させるには?

    ●質問の主旨 1.コンボボックスから選択した顧客名によって ラベルに顧客種別を表記させるにはどのように コードを書き換えればよいでしょうか? 2.またどの顧客が選ばれても、顧客種別に  対応して表記させるにはコードが足りない  ような気がします。もしそのような対応が  できるコードがあれば、合わせてご教示  ください ●質問の補足 添付の画像のユーザーフォームのコンボボックスから 顧客名を選んで、その顧客名によって別シートの顧客 一覧表から ・「新規顧客」 ・「既存顧客」 ・「自社」 のどれに当たるかVLookup関数を使ってラベルに 表記させたいと考えております。 以下のコードを記述しましたが、 「メソッドまたはメンバが見つかりません」と エラーが返されてしまいます。 ●ユーザーフォームの構成 「顧客名」→Label3 「顧客リスト」→ComboBox1 「顧客種別」→Label4 なお、ユーザーフォームはプリントスクリーンで 貼り付けており、本来はWorksheets(1)に表示されます。 ●コード 'ユーザーフォームの初期化 Private Sub UserForm_Initialize() With ComboBox1 .AddItem "NPO法人亀山社中" .AddItem "土佐商会株式会社" .AddItem "(株)薩摩示現流" .AddItem "越後屋株式会社" .AddItem "藩校コンサルティング(株)" .AddItem "株式会社ラーニングバー" .AddItem "自社"  End With End Sub '顧客リストが選択された時の顧客種別の表記 Private Sub ComboBox1_Click() Worksheets(2).Activate Label4.Value = Application.WorksheetsFunction.VLookup("B4", Range("B3:C8"), 2, 1) End Sub 以上よろしくお願い申し上げます。使用機種はWindowsVistaで、 Excel2007です。私はVBA初心者です。

  • VBA スタック容量が足りない・・・

    こんばんわ! エクセルのVBAを使った管理システムを作ろうと思うのですが、色々考えて下記のような状態にしてみたのですが、ユーザーフォームをモードレスにするとスタック容量が足りなくなります。 Sub aaa_date() If Range("a1") = 1 Then bbb_date.Show ElseIf Range("a1") = 2 Then ccc_date.Show ElseIf Range("a1") = 3 Then ddd_date.Show End If Call aaa_date End Sub bbb_date(ユーザーフォーム)に↓ Private Sub CommandButton1_Click() Range("a1") = 2 Unload Me End Sub Private Sub CommandButton2_Click() Range("a1") = 3 Unload Me End Sub ccc_date(ユーザーフォーム)に↓ Private Sub CommandButton1_Click() Range("a1") = 1 Unload Me End Sub Private Sub CommandButton2_Click() Range("a1") = 3 Unload Me End Sub ddd_date(ユーザーフォーム)に↓ Private Sub CommandButton1_Click() Range("a1") = 1 Unload Me End Sub Private Sub CommandButton2_Click() Range("a1") = 2 Unload Me End Sub ※bbb_dateとccc_dateとddd_dateはそれぞれにあるボタンを押すとA7セルの値を変更するようにして、aaa_dateでどのフォームを表示するのかを選択しています。 ※実際にはもっと沢山ユーザーフォームがあります。 上記の状態では動作するのですが、エクセルの表に値を入力したいので、bbb_dateとccc_datとddd_datをvbModeless(モードレス状態)にすると、スタック容量が足りませんと出ます。 別のやり方でもよいですので、ユーザーフォームを切り替える良い方法があったらお願いします。

  • 【Excel 2007】クエリが実行できません

    データタブ⇒その他のデータソース⇒Microsoft Query⇒クエリウィザードを使ってデータ抽出を行ないました。同一ブック内に元となるデータシート、抽出データシートを作成しています。こここまではうまくできました。しかし、作成したブックを同一パソコンの別フォルダに移動したところ、エラーが出てデータ接続ができません。具体的には、「実行時エラー'1004' 一般エラー ODBCエラー」がでます。ブックを元の場所に戻すとエラーが出ずきちんと集計できます。作成したブックを移動してもデータ接続を行い、クエリがきちんと実行できるようにするにはどうしたら解決するでしょうか?もう一度ウィザードからやるのは大変です。 データ参照場所を再設定すればできそうなのですが、やり方が分かりません。例えばマイドキュメント⇒デスクトップにブックを移動した場合だとどのようになりますか?自分でも調べて試してみたのですがうまくできません。よろしくお願いします。

  • excelマクロボタンのリンク先の表示方法

    よろしくお願いします。 excel2010にてマクロボタンを設定し、特定のsheetに飛ぶよう設定しました。 ●そのボタンにマウスポインタを持って行った際にリンク先が表示されるように  することは可能でしょうか? ●このボタンをクリックしたらどこへ飛ぶか、というのがわかるようにしたいの  ですが、良い方法がありましたら教えてください。 お願いいたします。 Sub マクロ名() Workbooks.Open ThisWorkbook.Path & "\ファイル名.xls" Worksheets("シート名").Activate End Sub

  • vbaで複数のパターンのファイル名を読み込みたい

    例えば、11.jpg~79.jpgの画像を読み込むとします。 これをvbaで記述すると j & i & ".jpg" となります(1の位と10の位の数字は独立していると考えてください) これを、1-1.jpg~7-9.jpg といった形式をvbaで記述すると、 j & "-"& i & ".jpg" となります。 これをvbaで記述させるときに、これをA1のセルに「ji」や、「j-i」や、「i」、「j」と入力させたときに様々なパターンに対応させたいと考えております。 (他の方法でもいいです。やりたいことは、複数パターンのファイル名に対応させたいという事です。) いちいち、写真のファイル名のパターンが違うたびにコード書き直すのも面倒ですし、プログラムわからない人には読み込ませることすらできないです。 4パターンだったら、if文で分けちゃえば?という人もいるでしょうが、それは最終手段として残しておきたいです(プログラムがえらい長くなり、後々の修正が大変だし、パターンが増えるたび追加しなければならないので) せめて、C言語のように#defineによる置き換えができれば、 #define PATARN j & "-"& i として、「一か所のみ修正すれば楽ちん」みたいなことができればいいんですけれども、 VBAで、C言語の#defineに該当するものが何かよくわかりません。 (プログラム本文にはPATARNに該当する箇所が何か所かあるので、修正が大変なんです) もし必要ならと思い、ソースの一部を書いておきます(主要なところだけ残して、後はざっくり削除しています) やってることは、写真を挿入して、規則的に並べて、JPEG変換しています (下のコードは写真の挿入のみ) Sub 写真挿入→JPEG変換() On Error Resume Next Dim flag As Integer Dim xoffset As Integer Dim yoffset As Integer Dim Ystart As Integer Dim i As Integer Dim j As Integer Dim Xstart As Integer Dim str As String Dim Er As String Xstart = 1 Dim Xend As Integer Dim Yend As Integer flag = 0 xoffset = 1 yoffset = 1 Ystart = 1 Yend = 6 Xend = 6 Application.ScreenUpdating = False For j = Xstart To Xend For i = Ystart To Yend ActiveSheet.Pictures.Insert(ActiveWorkbook.Path & _ j & i & ".jpg").Select If i = Yend Then Else If flag = 0 Then ActiveCell.Offset(yoffset, 0).Range("A1").Select ElseIf flag = 1 Then ActiveCell.Offset(0, xoffset).Range("A1").Select End If End If Next If flag = 0 Then ActiveCell.Offset(-(Yend - Ystart) * yoffset, xoffset).Range("A1").Select ElseIf flag = 1 Then ActiveCell.Offset(yoffset, -(Yend - Ystart) * xoffset).Range("A1").Select End If Next Application.ScreenUpdating = True End Sub

  • CDO.Messageを使ったVBScript

    VBScriptでメールを送信するためのサンプルがさまざまなサイトで紹介されており、 下記プログラムの10,11,12行目のURLが何をさしているのかが分かりません。 =============================ここから=============================== 1. Set objMail = CreateObject("CDO.Message") 2. objMail.From = "表示名 <username@xxx.yy.zz>" 3. objMail.To = "表示名1 <username1@xxx.yy.zz>;表示名2 <username2@xxx.yy.zz>" 4. objMail.Cc = "username@xxx.yy.zz" 5. objMail.Bcc = "username@xxx.yy.zz" 6. objMail.Subject = "メール送信テスト" 7. objMail.HtmlBody = "<html><body><i>CDO.Messageによるメール送信テスト</i></body></html>" 8. objMail.BodyPart.Charset = "utf-8" 9. objMail.AddAttachment "c:\test.txt" 10. objMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 11. objMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "mailhost" 12. objMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 13. objMail.Configuration.Fields.Update 14. objMail.Fields("urn:schemas:mailheader:X-Mailer") = "vbscript mail" 15. objMail.Fields("urn:schemas:mailheader:Importance") = "High" 16. objMail.Fields("urn:schemas:mailheader:Priority") = 1 17. objMail.Fields("urn:schemas:mailheader:X-Priority") = 1 18. objMail.Fields("urn:schemas:mailheader:X-MsMail-Priority") = "High" 19. objMail.Fields.update 20. objMail.Send 21. Set objMail = Nothing =============================ここまで=============================== 実際に会社の運用業務で使用しても問題ないものなのでしょうか? また、問題があるのでしたら、その解決法を教えて頂ければ嬉しいです。

  • excelVBA rangeのdeleteの検出

    よろしくお願いします。 Sub test() Dim a As Range If a Is Nothing Then MsgBox "1:nothing" '表示する Set a = Range("C3") If a Is Nothing Then MsgBox "2:nothing" '表示しない MsgBox a.Row '表示する a.Delete shift:=xlUp If a Is Nothing Then MsgBox "3:nothing" '表示しない MsgBox a.Row    'エラーになる End Sub 知りたいのはaをdeleteしたことをif文で検出したいのです。どうすればいいのでしょうか。 (setしたあとでdeleteしても既にそれはnothingではありません。set a=nothing をa.Delete shift:=xlUp のあとに挿入すれば、3:nothingは表示します。しかし、今したいのは、deleteしたことを検知することです。)(on error goto を使わずに処理したいです。)

  • excelVBA rangeのdeleteの検出

    よろしくお願いします。 Sub test() Dim a As Range If a Is Nothing Then MsgBox "1:nothing" '表示する Set a = Range("C3") If a Is Nothing Then MsgBox "2:nothing" '表示しない MsgBox a.Row '表示する a.Delete shift:=xlUp If a Is Nothing Then MsgBox "3:nothing" '表示しない MsgBox a.Row    'エラーになる End Sub 知りたいのはaをdeleteしたことをif文で検出したいのです。どうすればいいのでしょうか。 (setしたあとでdeleteしても既にそれはnothingではありません。set a=nothing をa.Delete shift:=xlUp のあとに挿入すれば、3:nothingは表示します。しかし、今したいのは、deleteしたことを検知することです。)(on error goto を使わずに処理したいです。)