pkh4989 の回答履歴

全497件中161~180件表示
  • excel VBA

    昨日VBAをさわり始めた超初心者です。質問ですが、excelからパワーポイントのシート内を削除の仕方と、テキスト追加方法を教えて下さい。パワーポイントは既存であり、テキスト内容はexcelのセル内の文字で、変数に入れることができました。まだまだ無知なので、ご教授下さいますようよろしくお願いします。

  • VBAで別シートに改ページをして印刷する

    現在アクティブになっているシート(sheet1)内で 合計値を算出し、別シート(sheet2)に出力する処理をしています。 二つは同じbookです。 小計値を出力したタイミングで改ページを挿入したいのですが、 うまくいきません。何か方法があるのでしょうか? with sheet1 loop ・・・小計処理 ・・・sheet2に小計値セット Set ast = ActiveWorkbook ast.Worksheets("sheet2").HPageBreaks.Add Before:=Range("a7") '(↑a7は仮でいれています。実際は行変動) end loop ・・・合計値出力 endwith また、最終的にはsheet2を別bookに移動してから印刷するのですが、 設定した改ページは保持されるのでしょうか??

  • 【ExcelVBA】シートのCodeNameプロパティからオブジェクトを取得する方法

    いつも勉強させていただいてます。 業務でExcelVBAを使用していますが、ワークシートのCodeNameプロパティ値からワークシートオブジェクトを取得する方法はありますでしょうか。 以下、詳細です。 ・環境:Excel2003 ・概要    ワークシートのオブジェクト名:"shtFormat"    シート名:"フォーマット"  ガントチャートを作成するVBAなのですが、上記のシートをコピーして、実際に処理に使用するシートを作成します。  作成後も、ユーザフォームや別のデータ操作用ワークシートのイベントから操作するため、コピーしたシートを特定する情報を内部で保持しようと考えています。  そこで、CodeNameプロパティ値を保持しようと考えておりますが、CodeNameプロパティ値(文字列)からワークシート型のオブジェクトを取得する方法が分かりません。 ※ Nameプロパティはシート名を変更した際に使用できなくなり、断念しました。 ※Indexプロパティはシートの並び順によって値が変わるため、断念しました。 以上です。 宜しくお願い致します。

  • エクセルのマクロで質問です

    エクセルのマクロで質問です。 SaveAsを使って、あるセルの文字列をファイル名として保存する、というマクロを作りました。 取りあえずうまくいっているのですが、同じファイル名がすでに存在した場合、「上書きしますか?」というダイアログが出ます。 運用上、上書きは困るのですが、「いいえ」を選択するとマクロがエラーで止まってしまいます。 そこで、以下のどちらかの動作を実現するマクロは可能でしょうか? 1.いいえを選んだ時に、ファイル名を指定するダイアログに飛ぶ 2.同じファイル名があった場合、自動的に末尾に数字を不可して保存する(ファイル名.xlsがあった場合はファイル名2.xlsで保存する) よろしくお願い致します。

  • エクセル 同じ内容行削除マクロ

    シート1、シート2のB列を比較して同じ内容の行を削除したいと思います。(シート1な内容は300行程度です。) シート2  A列  B列     栃木県3     茨城県2     福島県5 シート1  A列  B列   C列  D列  11  埼玉県1  あ  い  12  栃木県3  か  き  13  群馬県1  た  ち  14  福島県5  さ  し  15  茨城県2  な  に     上記のような例があったとします。出来上がりはシートを変えずシート1で構いません。 シート1  A列  B列   C列  D列  11  埼玉県1  あ  い  13  群馬県1  た  ち となるようなマクロをご教授お願い致します。

  • マイクロソフト アクセスの質問です。

    フィールドとフィールドの形式が全く同じテーブルが複数あります。 このテーブルを縦にくっつけて1つのテーブルにすることができますか? クエリの結合では横にしかつながらないため、困っています。 よろしくお願いします

  • エクセルについて

    Sheet1のA列に任意の6桁の数字が300列ほどあります。 Sheet2のA列には任意の6桁の数字が150列ほどあります。 Sheet2のA列の数字はSheet1のA列に全件含まれています。 Sheet1のA列でSheet2のA列の数字が含まれていないもののみ 抜き出すかわかりやすいように色を変えるなどしたいのですが どうしたらよいでしょうか?? よろしくおねがいしますm(__)m

  • Excel2003VBAでファイルをコピーして指定場所に保存

    こんにちわ。 私は下記のコードで保存場所をCドライブに指定しているのですが、これを保存先が選べるようにするのはどうすれば良いですか? Application.DisplayAlerts = False Set OldWkbook = ActiveWorkbook ' 'ファイル名を取得 BkName1 = OldWkbook.Sheets(StName1).Range("E1").Value BkName2 = OldWkbook.Sheets(StName1).Range("E2").Value BkName3 = OldWkbook.Sheets(StName1).Range("E3").Value FileName = BkName1 & Format(".") & Format("試験結果") & Format(".") & BkName2 & Format(".") & BkName3 & ".xls" FileName = InputBox(FileName & "と言う名前で保存します" & vbCr & "よろしければこのままOKをクリックしてください", "保存ファイル名の確認", FileName) If FileName = "" Then Exit Sub Else If Right(FileName, 4) <> ".xls" Then MsgBox "ファイル名が異常です。" Exit Sub End If End If 'シートの保護を解除 Worksheets("Sheet1").Unprotect Worksheets("Sheet2").Unprotect Worksheets("Sheet3").Unprotect OldWkbook.Sheets(Array(StName1, StName2, StName3, StName4, StName5)).copy Set NewWkbook = ActiveWorkbook 'ボタンを削除 For wIx = NewWkbook.Sheets(1).Shapes.Count To 1 Step -1 If Left(NewWkbook.Sheets(1).Shapes(wIx).Name, 6) = "Button" Then 'ボタンのみ削除 NewWkbook.Sheets(1).Shapes(wIx).Delete End If Next NewWkbook.Sheets(1).Name = StName1 'コピー先シートの保護 Sheets(1).Protect Sheets(2).Protect Sheets(3).Protect Sheets(4).Protect Sheets(5).Protect FileName = "C:\" & FileName If Dir(FileName) <> "" Then '##ファイルが既に存在する If MsgBox("既に指定のファイルが存在します。 置き換えますか?", vbOKCancel, "置き換えの確認") = vbCancel Then NewWkbook.Close savechanges:=False '##保存せずに終了 'シートの保護 Worksheets("Sheet1").Protect Worksheets("Sheet2").Protect Worksheets("Sheet3").Protect Exit Sub '##指定ファイル置き換え保存 End If NewWkbook.SaveAs FileName:=FileName Else '##ファイルを新規保存 NewWkbook.SaveAs FileName:=FileName End If NewWkbook.Close savechanges:=False Application.DisplayAlerts = True 'シートの保護 Worksheets("Sheet1").Protect Worksheets("Sheet2").Protect Worksheets("Sheet3").Protect End Sub

  • ACCESS クエリ抽出する際、重複しているフィールドを取り除きたい

    テーブルA テーブルB があり、そのクエリ クエリA クエリB を作ってあります。 クエリA フィールドA1 フィールドA2 クエリB フィールドB1 フィールドB2 結合は、クエリAのフィールドA1 ⇒ クエリBのフィールドB1 としており、 実行結果としては、以下のようになって抽出されます。 クA:フィA1|クA:フィA2|クB:フィB1|クB:フィB2 a       |J      |(空)    |(空) a       |J      |(空)    |(空) a       |K      |(空)    |(空) b       |L      |(空)    |(空) b       |L      |(空)    |(空) b       |M      |(空)    |(空) b       |M      |(空)    |(空) c       |X      |c      |P c       |X      |c      |P c       |X      |c      |Q c       |X      |c      |Q c       |X      |c      |Q d       |Y      |d      |R d       |Y      |d      |S d       |Y      |d      |S これを踏まえて、 重複を除いた形での実行結果として得たいパターンは以下の2つです。 <パターン(1)> クA:フィA1| a       | b       | c       | d       | ※他のフィールドは必要無し。 <パターン(2)> クA:フィA1|クA:フィA2|クB:フィB1|クB:フィB2 a       |J      |(空)    |(空) a       |K      |(空)    |(空) b       |L      |(空)    |(空) b       |M      |(空)    |(空) c       |X      |c      |P c       |X      |c      |Q d       |Y      |d      |R d       |Y      |d      |S ※4フィールドが同一になるところだけ除きたい 恐縮なのですが、この2パターンのSQLをご教授いただけると助かります。 よろしくお願い致します。

  • Excel2003VBAでファイルをコピーして指定場所に保存

    こんにちわ。 私は下記のコードで保存場所をCドライブに指定しているのですが、これを保存先が選べるようにするのはどうすれば良いですか? Application.DisplayAlerts = False Set OldWkbook = ActiveWorkbook ' 'ファイル名を取得 BkName1 = OldWkbook.Sheets(StName1).Range("E1").Value BkName2 = OldWkbook.Sheets(StName1).Range("E2").Value BkName3 = OldWkbook.Sheets(StName1).Range("E3").Value FileName = BkName1 & Format(".") & Format("試験結果") & Format(".") & BkName2 & Format(".") & BkName3 & ".xls" FileName = InputBox(FileName & "と言う名前で保存します" & vbCr & "よろしければこのままOKをクリックしてください", "保存ファイル名の確認", FileName) If FileName = "" Then Exit Sub Else If Right(FileName, 4) <> ".xls" Then MsgBox "ファイル名が異常です。" Exit Sub End If End If 'シートの保護を解除 Worksheets("Sheet1").Unprotect Worksheets("Sheet2").Unprotect Worksheets("Sheet3").Unprotect OldWkbook.Sheets(Array(StName1, StName2, StName3, StName4, StName5)).copy Set NewWkbook = ActiveWorkbook 'ボタンを削除 For wIx = NewWkbook.Sheets(1).Shapes.Count To 1 Step -1 If Left(NewWkbook.Sheets(1).Shapes(wIx).Name, 6) = "Button" Then 'ボタンのみ削除 NewWkbook.Sheets(1).Shapes(wIx).Delete End If Next NewWkbook.Sheets(1).Name = StName1 'コピー先シートの保護 Sheets(1).Protect Sheets(2).Protect Sheets(3).Protect Sheets(4).Protect Sheets(5).Protect FileName = "C:\" & FileName If Dir(FileName) <> "" Then '##ファイルが既に存在する If MsgBox("既に指定のファイルが存在します。 置き換えますか?", vbOKCancel, "置き換えの確認") = vbCancel Then NewWkbook.Close savechanges:=False '##保存せずに終了 'シートの保護 Worksheets("Sheet1").Protect Worksheets("Sheet2").Protect Worksheets("Sheet3").Protect Exit Sub '##指定ファイル置き換え保存 End If NewWkbook.SaveAs FileName:=FileName Else '##ファイルを新規保存 NewWkbook.SaveAs FileName:=FileName End If NewWkbook.Close savechanges:=False Application.DisplayAlerts = True 'シートの保護 Worksheets("Sheet1").Protect Worksheets("Sheet2").Protect Worksheets("Sheet3").Protect End Sub

  • 配列の現在のインデックス数を取得したい

    要素を自分でどんどん追加できる動的配列を作りたいんです。 最初に、単語数の限界を101個にしようと Dim word(100) As String にし、 最初から単語帳に入れている単語を6個にしようと word(0) = "long" word(1) = "short" word(2) = "fast" word(3) = "slow" word(4) = "blight" word(5) = "dark" と書きました。 つまり、宣言での要素数と、実際に存在する要素数に違いがあります。 ここにword(6)、word(7)・・・と追加していくようにしたいのです。 この時、「現在の存在するインデックス番号の最大値(一番最初は5)」を取得するにはどうやればいいのでしょうか? この値(仮にxとする)を取得したうえで、 newarray = x + 1 と、配列に要素を追加したいと思っています。 説明が分かりにくくて申し訳ありません。 どうぞよろしくお願いします。

  • ADOでテーブルのフィールド「A」の「0000」の数を数えたい。

    エクセルVBAからアクセスへ Set con = New ADOdb.Connection con.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ACCESSファイル名 Set Rs = New ADOdb.Recordset Rs.Open テーブル名, con, adOpenKeyset, adLockOptimistic Debug.Print Rs.RecordCount Set Rs = Nothing Set con = Nothing とエクセルVBAにコードを記述していますが思いどおりにいきません。 Debug.Print Rs.RecordCount しかわからなく これだとレコードの数しか数えられませんでした。 テーブルのフィールド「A」には「0000」が複数あります。 これを数えるにはどうすればいいのでしょうか? もっといいやり方があれば教えてくださいませ。 よろしくお願いします。

  • エクセル VBA タブストップに対する質問2

    下記の「エクセル VBA タブストップに対する質問」に書き込みした者ですが、一難去ってまた一難です。又、暗雲が漂ってきました。 条件は下記といっしょで テキストボックスが1~5まであり、テキストボックス2~4まではデータが入っています。 全てのTabStopはTrue、TabIndexは順に1~5が入っています。 テキストボックス1に何もデータを入れないで、Enterが押された場合、 テキストボックス1をアクティブにしたいのですが、下記で質問した回答で動かしても、きちんと動いてくれません。 どうかご指導よろしくお願いいたします。 Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) If KeyCode = 13 Then 'ENTER If TextBox1.Value = "" Then TextBox1.SetFocus End If End If End Sub このコードでテキストボックス1に何も入れずにEnterを押すとテキストボックス2がアクティブになってしまいます。

    • ベストアンサー
    • noname#140980
    • Visual Basic
    • 回答数3
  • エクセル VBA タブストップに対する質問

    初心の質問で申し訳ありませんが、困っていますので、回答をよろしくお願いいたします。 テキストボックス1、2、3をユーザーフォームに配置しています。 テキストボックスはすべてTabStopをTrueにし、TabIndexは順に1、2、3としています。 テキストボックス1にデータを入力後、もしテキストボックス2にデータが入っていれば、テキストボックス3をアクティブにしたいのですが、どうすれば良いのでしょうか? Private Sub テキストボックス1_AfterUpdate() If テキストボックス2.Value <> "" Then テキストボックス3.SetFocus End If End Sub としても、テキストボックス2のTabIndexが2なのでテキストボックス2がアクティブになってしまいます。 どうか、よろしくお願いいたします。

    • ベストアンサー
    • noname#140980
    • Visual Basic
    • 回答数3
  • エクセル

    エクセルでドロップダウンリストのはいったセルを保護するとドロップダウンリスト自体も保護されてリストが使えません。どうしたらいいのでしょうか

  • ACCESSクエリでの結合の仕方

    ACCESS 2003を使用しています。 テーブルA テーブルB テーブルC の3テーブルでクエリを作っています。結合的には・・・ テーブルAのフィールドX⇔テーブルCのフィールドX テーブルBのフィールドX⇔テーブルCのフィールドX です。 これで3テーブルに共通する一致データのみ抽出はできるのですが、 3テーブルに共通する一致データに加えて、テーブルAとテーブルBの不一致データ(テーブルCに対する)も一緒に抽出できるようにしたいのです。 2テーブルだけの結合であれば、結合プロパティを、 テーブルAのフィールドX⇒テーブルCのフィールドX のようにすることで実現できるのですが、3テーブルの結合の場合、どのようにすればよいでしょうか? テーブルAのフィールドX⇒テーブルCのフィールドX テーブルBのフィールドX⇒テーブルCのフィールドX のようにしてみましたが、「あいまいな外部結合が含まれているので、SQLステートメントを実行できません。云々。。。」と警告エラーがでてしまいます。 どなたが、ご教授いただけると助かります。 ご面倒ですが、よろしくお願い致します。

  • ACCESSクエリでの結合の仕方

    ACCESS 2003を使用しています。 テーブルA テーブルB テーブルC の3テーブルでクエリを作っています。結合的には・・・ テーブルAのフィールドX⇔テーブルCのフィールドX テーブルBのフィールドX⇔テーブルCのフィールドX です。 これで3テーブルに共通する一致データのみ抽出はできるのですが、 3テーブルに共通する一致データに加えて、テーブルAとテーブルBの不一致データ(テーブルCに対する)も一緒に抽出できるようにしたいのです。 2テーブルだけの結合であれば、結合プロパティを、 テーブルAのフィールドX⇒テーブルCのフィールドX のようにすることで実現できるのですが、3テーブルの結合の場合、どのようにすればよいでしょうか? テーブルAのフィールドX⇒テーブルCのフィールドX テーブルBのフィールドX⇒テーブルCのフィールドX のようにしてみましたが、「あいまいな外部結合が含まれているので、SQLステートメントを実行できません。云々。。。」と警告エラーがでてしまいます。 どなたが、ご教授いただけると助かります。 ご面倒ですが、よろしくお願い致します。

  • ACCESSクエリでの結合の仕方

    ACCESS 2003を使用しています。 テーブルA テーブルB テーブルC の3テーブルでクエリを作っています。結合的には・・・ テーブルAのフィールドX⇔テーブルCのフィールドX テーブルBのフィールドX⇔テーブルCのフィールドX です。 これで3テーブルに共通する一致データのみ抽出はできるのですが、 3テーブルに共通する一致データに加えて、テーブルAとテーブルBの不一致データ(テーブルCに対する)も一緒に抽出できるようにしたいのです。 2テーブルだけの結合であれば、結合プロパティを、 テーブルAのフィールドX⇒テーブルCのフィールドX のようにすることで実現できるのですが、3テーブルの結合の場合、どのようにすればよいでしょうか? テーブルAのフィールドX⇒テーブルCのフィールドX テーブルBのフィールドX⇒テーブルCのフィールドX のようにしてみましたが、「あいまいな外部結合が含まれているので、SQLステートメントを実行できません。云々。。。」と警告エラーがでてしまいます。 どなたが、ご教授いただけると助かります。 ご面倒ですが、よろしくお願い致します。

  • エクセル

    エクセルでドロップダウンリストのはいったセルを保護するとドロップダウンリスト自体も保護されてリストが使えません。どうしたらいいのでしょうか

  • エクセルでそれぞれのファイルをタスクバーに表示させたい

    エクセルで幾つかのファイルを開き、それぞれを最小化にしたとき、左下の方に「元に戻す」「最大化」「閉じる」のボタンが付いたものが並びますが、過去にこれをウィンドウズのタスクバーに出す様に出来たと思うのですが、今はどうすれば良いのかわかりません。バージョンによって違うのでしょうか?エクセルは97です。どなたかお分かりになりましたら、是非お教え下さい。