onlyrom の回答履歴

全624件中81~100件表示
  • 【Excel】VBAサンプルを実行すると、読み込んだファイルが読み取り専用になってしまう

    http://www.geocities.jp/ttak_ask/office_docu/ef6.html こちらのVBAサンプルを実行すると、読み込んだファイルが読み取り専用になってしまいます。 読み取り専用にならないようにするには、どうしたらいいでしょうか。 (読み込んだファイルは、保存をしないで終了したいです)

  • excelで重複データを1つにカウントしたいが、セルが結合されている場合

    エクセルでの重複データをひとつにカウントする方法で、 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1849830 式は上記の良回答より =COUNT(INDEX(1/(MATCH(A2:A100,A2:A100,0)=ROW(A1:A99)),0)) を使えばよいということはわかったのですが、 私の作っている表は、カウントしたいセルが結合してあり、うまくいきません。 具体的にはC,D,Eの結合のセルで、カウントしたい行は4行目~25行目まで。 空白のセルあり です。 =COUNT(INDEX(1/(MATCH(C4:E25,C4:E25,0)=ROW(C1:E21)),0)) としてみたのですが、 結果はすべて「0」となってしまいます。 このような場合どのようにすれば、よいかどなたか教えて下さい。

  • VBA コンボボックスの項目入力

    お世話になります。 Excel2002のVBAにて コンボボックスへの項目の入力について 質問させて頂きます。 現在行いたい処理はB27からB56のセルに入力されている数値 のなかからB62からB91に入力されている数値と重複の無いもの をコンボボックスへ追加したいと考えております(空白セルは 追加しない)。 以下の通りではどうもうまくいかないので宜しくお願いします。 ' For i = 27 To 56 ' If Range("B" & i) <> "" Then ' ComboBox1.AddItem Range("B" & i) ' For j = 62 To 91 ' If Range("B" & j) <> "" Then ' ComboBox1.RemoveItem Range("B" & j) ' End If ' Next ' End If ' Next

  • リストorキーボードによる入力判断

     入力規制でリストを設定しているセルがあります。そのセルにキーボードで入力をした場合、「キーボードで入力した」と判断する事はできないのでしょうか? また、リストで入力した場合、判断する事はできないでしょうか? Excel2003を使用しています。 よろしくお願いします。

  • ExcelVBA(2003)でドロップダウンリストを設定できる数に制限ありますか?

    はじめまして、yasu_131と申します。 掲題について質問させてください。(長文失礼します) やりたいことは、「Excel VBAを使って、ある固定列(例えばB列)に対してドロップダウンリストによる入力規則を適用したい」ということです。 諸事情により、ExcelVBAを直接扱うのではなく、JScriptを使ってExcelVBAを操作するという制約がありますが、 結局、書きたいコードや実行したい処理内容はExcel VBAそのものです。 開発環境、実行環境は Excel 2003 です。 困っていること: 実際に、10列×10行程度のデータを用意して、B列へドロップダウンによる入力規則を適用することはできています。 しかし、実際の運用で用いるデータは23列×2500行程度あり、このデータに対してExcelVBAを実行すると なぜかB列の1023行目までしかドロップダウンリストが適用されません。1024行目以降は普通の(入力規則が適用されてない) セルなのです。。 セルの中身のデータに問題があるかもしれないと思い、ためしに1~100までの数値だけが入力された列(E列)に対して 実行してみましたが、やはり1023行目までしかドロップダウンリストが適用されませんでした。 なにやら、1023(1024)という数値にExcelの内部的な制約を感じていますが、MS社のサイト等では該当する説明は ありませんでした。 この現象について、原因の糸口や解決策(あるいは回避策、代替策)を模索しています。 皆様のお知恵をご教授いただければと思います。 ※追加検証1:ドロップダウンリストを適用する列を増やす(例えばB列とE列を同時に適用する)と、  B列は1023行目まで、E列は202行目までしかドロップダウンリストになりませんでした。 ※追加検証2:Excel 2007 環境では、2列(B列とE列)へドロップダウンリストを適用しても  末尾行(2500行目)まで正常に入力規則が設定されました。 以下はその際のコードです。 // 初期化 this._objExcelApp = new ActiveXObject("Excel.Application"); this._objWorkbook = this._objExcelApp.Workbooks.Add(); this._objExcelApp.Selection.Style = "Normal"; this._activeSheet = this._objWorkbook.ActiveSheet; // 外部データのインポート //(実際のコードではCSVから必要なデータを抜き出してセルに埋めています。) for (i = 1; i < 2500; i++) { for (j = 1; j < 23; j++) { with(this._activeSheet) { Cells(i,j) = 'AAAAA'; } } } // 入力規則の適用(B列に対するドロップダウンリストの設定) var _row; var _xlDown = -4121; var _xlValidateList = 3; var _xlValidAlertStop = 1; var _xlBetween = 1; var _maxRow = this._activeSheet.Range("A1").End(_xlDown).Row; for (_row = 1 ; _row <= _maxRow ; _row++) { // B列に対するドロップダウンリストの設定 with(this._activeSheet.Range("B" + _row)){ with(Validation) { Delete(); Add(this._xlValidateList,this._xlValidAlertStop,this._xlBetween,"AAA,BBB,CCC,DDD,EEE"); IgnoreBlank = true; InCellDropDown = true; } Locked = false; } // E列に対するドロップダウンリストの設定 with(this._activeSheet.Range("E" + _row)){ with(Validation) { Delete(); Add(this._xlValidateList,this._xlValidAlertStop,this._xlBetween,"111,222,333,444,555"); IgnoreBlank = true; InCellDropDown = true; } Locked = false; } } // 実際のコードではここで保存処理はしていませんが、投稿のためにここで終了させています。 var fname; fname = this._objExcelApp.GetSaveAsFilename() this._objWorkbook.SaveAs(fname); this._objWorkbook.Close();

  • 配列数式を用いて、最小値を表示させたい

    配列数式について教えてください。 先回、こちらで質問させていただいて、なんとか理解できつつあります。回答していただきました方、どうもありがとうございました。 一応の理解はできたのですが、応用しようとしたところ、うまく数値が表示されてこないため、再度質問させていただきたいと思います。どうかよろしくお願いいたします。 表を添付いたしましたが、1月2日から4日までで、時間ごとにその最大値と最小値が表示されています。 今回、1月2日に合致したデータで、配列数式を用いて、その最大値と最小値を表示させようとしました。 その結果、最大値はちゃんと表示されるにも関わらず、最小値の値が「0」の表示となってしまいます。 最大値の式は MAX((A2:A10="1月2日"*1)*C2:C10) 最小値の式は MIN((A2:A10="1月2日"*1)*D2:D10) としています。 どこがまちがっているのでしょうか? ご教授、よろしくお願いいたしますm(_ _)m

  • Excelでセルの高さを保ったままソートできないか?

    Excelで作ったシートがあり、行方向のセルの高さが記述量に応じて異なっています。これをソートしたいのですが、セルの内容は入れ替わってもセルの設定した高さは変化しないので最後に手作業でいつも修正しています。ソート時にセルの高さも一緒に動くやり方は無いでしょうか?(VBAで出来ないでしょうか?)

  • セル内の文字列強調

    検索してセル内の任意の文字のみを強調(赤太字など)させることは出来ますでしょうか。 任意の文字については複数の文字列を一気に検索、強調表示させたいのです。 一文字の場合は下記で動作させることができました。 ◆文字列“a”のみに色を付ける -------------------------------- Sub test02() Dim c As Range For Each c In Selection s = 1 Do x = InStr(s, c, "a") If x = 0 Then GoTo p02 c.Characters(x, 1).Font.ColorIndex = 3 MsgBox x s = x + 1 Loop While Not x = 0 p02: Next End Sub -------------------------------- 複数の文字に色をつけるところでまだ悩んでいます。 やり方がわからず恐縮ですが、お教え頂けると有難いです。

  • エクセル「読み取り専用」を変更出来なくする設定は?

    エクセル2000です。 BOOKの属性を「読み取り専用」としているのですが、この属性を変更不可と出来ないものでしょうか?設定したときのやりかたと同じですが、開く前のBOOKのアイコンを右クリックして「プロパティ」の「全般」で、中にある「属性」の「読み取り専用」のチェックをはずすと簡単に変わってしまいます。 VBAでWorkbook_BeforeSaveを使って上書き保存が出来ないようにすることは十分可能でしょうが、できればせっかく用意されている「読み取り専用」という属性を活かしたいと思い質問いたしました。 よろしくおねがいいたします。

  • エクセル「読み取り専用」を変更出来なくする設定は?

    エクセル2000です。 BOOKの属性を「読み取り専用」としているのですが、この属性を変更不可と出来ないものでしょうか?設定したときのやりかたと同じですが、開く前のBOOKのアイコンを右クリックして「プロパティ」の「全般」で、中にある「属性」の「読み取り専用」のチェックをはずすと簡単に変わってしまいます。 VBAでWorkbook_BeforeSaveを使って上書き保存が出来ないようにすることは十分可能でしょうが、できればせっかく用意されている「読み取り専用」という属性を活かしたいと思い質問いたしました。 よろしくおねがいいたします。

  • 【VBA】特定の表の最終セルのアドレスをA1形式で知りたい

    図の矢印場所のセルの場所を知りたいのですがどうすればいいのでしょうか? 複数の表の最終セルのアドレスはusedrangeでわかるのですが・・・

  • 配列数式を用いて、最小値を表示させたい

    配列数式について教えてください。 先回、こちらで質問させていただいて、なんとか理解できつつあります。回答していただきました方、どうもありがとうございました。 一応の理解はできたのですが、応用しようとしたところ、うまく数値が表示されてこないため、再度質問させていただきたいと思います。どうかよろしくお願いいたします。 表を添付いたしましたが、1月2日から4日までで、時間ごとにその最大値と最小値が表示されています。 今回、1月2日に合致したデータで、配列数式を用いて、その最大値と最小値を表示させようとしました。 その結果、最大値はちゃんと表示されるにも関わらず、最小値の値が「0」の表示となってしまいます。 最大値の式は MAX((A2:A10="1月2日"*1)*C2:C10) 最小値の式は MIN((A2:A10="1月2日"*1)*D2:D10) としています。 どこがまちがっているのでしょうか? ご教授、よろしくお願いいたしますm(_ _)m

  • エクセル「読み取り専用」を変更出来なくする設定は?

    エクセル2000です。 BOOKの属性を「読み取り専用」としているのですが、この属性を変更不可と出来ないものでしょうか?設定したときのやりかたと同じですが、開く前のBOOKのアイコンを右クリックして「プロパティ」の「全般」で、中にある「属性」の「読み取り専用」のチェックをはずすと簡単に変わってしまいます。 VBAでWorkbook_BeforeSaveを使って上書き保存が出来ないようにすることは十分可能でしょうが、できればせっかく用意されている「読み取り専用」という属性を活かしたいと思い質問いたしました。 よろしくおねがいいたします。

  • エクセル「読み取り専用」を変更出来なくする設定は?

    エクセル2000です。 BOOKの属性を「読み取り専用」としているのですが、この属性を変更不可と出来ないものでしょうか?設定したときのやりかたと同じですが、開く前のBOOKのアイコンを右クリックして「プロパティ」の「全般」で、中にある「属性」の「読み取り専用」のチェックをはずすと簡単に変わってしまいます。 VBAでWorkbook_BeforeSaveを使って上書き保存が出来ないようにすることは十分可能でしょうが、できればせっかく用意されている「読み取り専用」という属性を活かしたいと思い質問いたしました。 よろしくおねがいいたします。

  • ソートについて質問です

    いつもご回答ありがとうございます。 今回はソートについて質問させて下さい。 非常に単純な並べ替えですが、 B1~B100に並べられているデータを、B100~B1の順に並べ変えようと思います。 単純に、上下反対に並べ変えると言う事です。 そこで、 Range("B1:B100").Sort Key1:=Columns("B"),Orientation:=xlSortRows と記述したのですが、エラーが出てしまいます。 どこがいけないのでしょうか?

  • 配列数式について教えてください

    配列数式について教えてください。 表を添付しました。配列数式を用い、データの抽出をしようとしましたが、「0」の表示となってしまい、希望する数値が表示 されませんでした。式も、表に記入してあります。 どうすれば、正しいデータが抽出されるでしょうか? 表の内容は、1月2~4日までのデータがあり、、それぞれ9:00~9:02の1分ごとに、その最大値と最小値が記入されています。 1月2日~4日の中で、9:00に該当した最大値を抽出したいと 思います。表に従えば、「70」が表示されるべきですが、「0」と表示されてしまいます。なぜなのでしょう? 式のどこを直したらよいか、どうかご教授願います。

  • Excel スピンボタンの対象範囲

    Excel2003での質問なのですが、 スピンボタンのリンク先を複数のセルに指定したいのですが、やり方がわからずに困っています。 具体的には 3つのセルの値を1つのスピンボタンで加減するように組みたいのです。 1つなら簡単にリンク先として指定できたのですが、複数選択するとエラーになってしまいます。 どうしたらいいでしょうか? やはりマクロ等を組まないといけないのでしょうか? 方法を知っている方がいらっしゃいましたら教えていただけると嬉しいです。 よろしくお願いします。

  • ソートについて質問です

    いつもご回答ありがとうございます。 今回はソートについて質問させて下さい。 非常に単純な並べ替えですが、 B1~B100に並べられているデータを、B100~B1の順に並べ変えようと思います。 単純に、上下反対に並べ変えると言う事です。 そこで、 Range("B1:B100").Sort Key1:=Columns("B"),Orientation:=xlSortRows と記述したのですが、エラーが出てしまいます。 どこがいけないのでしょうか?

  • ソートについて質問です

    いつもご回答ありがとうございます。 今回はソートについて質問させて下さい。 非常に単純な並べ替えですが、 B1~B100に並べられているデータを、B100~B1の順に並べ変えようと思います。 単純に、上下反対に並べ変えると言う事です。 そこで、 Range("B1:B100").Sort Key1:=Columns("B"),Orientation:=xlSortRows と記述したのですが、エラーが出てしまいます。 どこがいけないのでしょうか?

  • 【VBA】Worksheet_changeイベントで特定のキーが押されたときだけ無効にしたい

    Excel2003です。 タイトルそのまんまなんですが、Deleteキーを押したときだけWorksheet_changeイベントが走らないようにできますか?