Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


285 / 3841 ページ ←次へ | 前へ→

【76733】Re:オートフィルタが急に動かなくなり実...
質問  さとちぃ  - 15/3/6(金) 10:13 -

引用なし
パスワード
   先ほどの追記です。

当方の環境についてご説明いたします。

Excel 2003と2010を同時にインストールされている環境

C:\Program Files\Microsoft Office

この直下にOFFICE12、OFFICE14がインストールされている状態。

別のバージョンが同時にインストールされる状況は好ましくないということはすでに
確認済みですが、これまで正常に動いていたため、あえて無視してました。

なお、再インストールしてみましたが、状況は改善されてません。
・ツリー全体表示

【76732】オートフィルタが急に動かなくなり実行で...
質問  さとちぃ  - 15/3/6(金) 9:54 -

引用なし
パスワード
   すみません、当掲示板でお聞きすることではないかもしれませんが
ネットで検索しても解決方法が見つからず困っております。

皆様のご経験から思い当たる点について、ご指摘いただければ幸いです。


(困っていること)
これまで正常に動いたオートフィルタが、急に動かなくなった。
他のマクロで、オートフィルタを使用している物も同様の現象あり。


(プログラム例 )

拠点に関する一覧表があり、その中から青森県に関する企業を検出するために
オートフィルタを用いて表示させます。

 1     2   3     4      5    6     7
A 担当者名 リンク 事業所名 職制  郵便番号  備考 住所(県)
B 赤城   リンク 八甲田  課長  111-3331      青森県
C 加賀       加賀美  部長  211-3254      石川県

拠点検索()
Workbooks.Open "C\エリア一覧.xls" ⇒アドレスはテキトウです。

  Worksheets("拠点情報").Select
  ActiveSheet.Unprotect
    ActiveSheet.Range("A7").AutoFilter Field:=7, Criteria1:="*青森*"
    ActiveSheet.Range("A7").AutoFilter Field:=2, Criteria1:="*リンク*"

エラー項目は、
ActiveSheet.Range("A7").AutoFilter Field:=7, Criteria1:="*青森*"


RangeクラスのAutofilterメソッドが失敗しました。 エラー1004

です。
・ツリー全体表示

【76730】Re:集計について
お礼  ビギナー  - 15/3/5(木) 19:11 -

引用なし
パスワード
   ビギナーです。
ご返信有り難うございました。

このような方法があるのですね!

こういう場合は、for ~ nextやifで条件を作るなどしてひたすらSheet1と2を行き来する方法しか、
思いつかず(それでもできなかったのですが・・・)でした。

とても勉強になりました。
明日実際に作ってみようと思います!
・ツリー全体表示

【76729】Re:集計について
発言  β  - 15/3/5(木) 16:52 -

引用なし
パスワード
   ▼ビギナー さん:

・B1に =SUMIF(Sheet1!A:A,A1,Sheet1!B:B) を入力
・これを下にフィルコピー

この部分は

・B列を選択し、データタブの統合
・統合元にAheet1のA:B列を選択して指定
・左端にチェックし実行

こうしても、結果が得られますね。
・ツリー全体表示

【76728】Re:集計について
発言  β  - 15/3/5(木) 14:53 -

引用なし
パスワード
   ▼ビギナー さん:

以下のような操作をして、それをマクロ記録してみたらいかがでしょう。
出来上がったもので、領域固定の部分を変数化する等の手を入れれば
立派なマクロになると思います。

・Sheet1を選択
・A列を選択
・Ctrl/c
・Sheet2を選択
・A1を選択
・Ctrl/v
・Escキー
・データタブの重複の削除を実行
・B1に =SUMIF(Sheet1!A:A,A1,Sheet1!B:B) を入力
・これを下にフィルコピー
・ツリー全体表示

【76727】集計について
質問  ビギナー  - 15/3/5(木) 14:28 -

引用なし
パスワード
   集計に関する質問です。

シート1
A列に東京、神奈川、沖縄などの都道府県がランダム入っており(同じ都道府県のダブりもあります)、
B列にはそのA列に対応した数字が入っております。

シート2にシート1の各都道府県ごとの集計を行うマクロを作りたいと思っております。
A列には各都道府県を持ってきて(集計なのでこの際はダブりはなくなる形です)、
B列にはシート1の各都道府県ごとの合計数を集計していくようにしたいと考えております。

※説明が下手で申し訳ありません。

初歩的な質問で申し訳ございませんが、よろしくお願い致します。
・ツリー全体表示

【76726】Re:マクロを実行するボタンの自動生成&...
お礼  さとちぃ  - 15/3/5(木) 11:13 -

引用なし
パスワード
   β様

さとちぃです。
大変遅くなりましたが、この度はありがとうございました。
大変処理が軽くなり、更新作業が非常に楽になりました。

ありがとうございました。
・ツリー全体表示

【76725】Re:図形のコピー
お礼  かかし E-MAIL  - 15/3/5(木) 9:01 -

引用なし
パスワード
   ▼β さん:
>▼かかし さん:
>
>もしかして・・・・
>ちょっと先走りかもしれませんが図の18番目から最後までというのには
>ちゃんとした意味がある。だけど、意図した図が選ばれない。
>もし、こういうことだとして。
>
>単線結線図-入力画面シートに、入力規則なんかがあるということは?
>もしあった場合、通常なら、今作ったShapeは Shapes.Count番目のShapeのはずですが
>なぜか(エクセルの仕様だと思いますが)Shapes.Count番目のShapeは、常に入力規則になります。
>(入力規則もShapeの一種です)
>
>もし、こうなら、マクロの中の Shape や Shapes を Picture や Pictures に置換え、
>.DrawingObject.Copy を .Copy に変えて試してみてください。

何度もありがとうございます、18番目から20番目というのは、17番目までの図形は入力フォームにも印刷フォームにも固定で入っており入力フォームには必ず18番目から入っていくということで入力箇所が3カ所あるんです。
削除部分を作っていてわかったんですが、shapesの番号は削除すると変化するんですね、たとえば18.19とあった場合18を削除すると削除した時点で19が18に変わってしまうんですね。
どうもこの辺でおかしくなっていたみたいです。おっしゃるように18番からコピーしたつもりが、19だけコピーされたりしていました。
何とか、うまく動くようになりました。
大変ありがとうございました。
・ツリー全体表示

【76724】Re:図形のコピー
発言  β  - 15/3/4(水) 21:37 -

引用なし
パスワード
   ▼かかし さん:

もしかして・・・・
ちょっと先走りかもしれませんが図の18番目から最後までというのには
ちゃんとした意味がある。だけど、意図した図が選ばれない。
もし、こういうことだとして。

単線結線図-入力画面シートに、入力規則なんかがあるということは?
もしあった場合、通常なら、今作ったShapeは Shapes.Count番目のShapeのはずですが
なぜか(エクセルの仕様だと思いますが)Shapes.Count番目のShapeは、常に入力規則になります。
(入力規則もShapeの一種です)

もし、こうなら、マクロの中の Shape や Shapes を Picture や Pictures に置換え、
.DrawingObject.Copy を .Copy に変えて試してみてください。
・ツリー全体表示

【76723】Re:図形のコピー
発言  β  - 15/3/4(水) 21:20 -

引用なし
パスワード
   ▼かかし さん:

コードそのものは精読していませんが、整理するところはありそうです。
ただ、コード自体は動きますよね。

>こんな風に作ってみたんですがうまく動作しません(削除部分はまだ作ってません)

うまく動作しないというのは、どういうことなのか、具体的にはわからないのですが
新規ブックで単線結線図-入力画面シートと単線結線図印刷シートをつくり
単線結線図-入力画面シートに図を20個配置。
アップされたコードをそのまま動かしました。

結果は、コードでやっているとおり(当たり前ですが)
18番目の図〜最後の図(20番目の図)が、単線結線図印刷シートに同じ位置でコピーされ
コピーされた単線結線図印刷シートがちゃんと印刷されました。

この18番目のシートから・・というところが、なぜなのか要件がわからず
コメントはできないのですが。
・ツリー全体表示

【76722】Re:日にち
回答  [名前なし]  - 15/3/4(水) 17:34 -

引用なし
パスワード
   独覚さん
すみません。4/10→6/9でした。60日後は間違いありません。

▼独覚 さん:
>▼まさ さん:
>結果チェック時に疑問が出てきました。
>
>4/10+60→6/10
>なのですか?
>
>4/10+60→6/9
>ではなく?
>
>もしかして60日後ではなく2ヵ月後ということですか?
・ツリー全体表示

【76721】Re:日にち
発言  独覚  - 15/3/4(水) 14:24 -

引用なし
パスワード
   ▼まさ さん:
結果チェック時に疑問が出てきました。

4/10+60→6/10
なのですか?

4/10+60→6/9
ではなく?

もしかして60日後ではなく2ヵ月後ということですか?
・ツリー全体表示

【76720】Re:日にち
回答  [名前なし]  - 15/3/4(水) 14:02 -

引用なし
パスワード
   ▼独覚 さん:
独覚さん、早速のご連絡ありがとうございます。
基本的に予めA、B両列2行目〜数百行めまで日にちの値が入っている状態です。
イメージとして、AかB列、(同じ行)の遅い方から60日後がデッドラインだという注意喚起をする資料にしたいのです。その要件ですと、マクロの方が使い勝手がよいでしょうか?
マサさん:
>ワークシート上の式でもできますがマクロのほうがいいのでしょうか?
>
>またマクロの場合、A列、B列に入力があった時にC列に表示させるのか、あらかじめA列、
>B列に値が入っていてマクロを実行するとC列に表示するのとどちらがいいでしょうか?
・ツリー全体表示

【76719】Re:日にち
発言  独覚  - 15/3/4(水) 13:29 -

引用なし
パスワード
   ▼まさ さん:
ワークシート上の式でもできますがマクロのほうがいいのでしょうか?

またマクロの場合、A列、B列に入力があった時にC列に表示させるのか、あらかじめA列、
B列に値が入っていてマクロを実行するとC列に表示するのとどちらがいいでしょうか?
・ツリー全体表示

【76718】日にち
質問  まさ  - 15/3/4(水) 13:16 -

引用なし
パスワード
   質問します。どなたかお分かりなら、教えてください。

列Aに「日にち」が入力されている。
列Bに「別の日にち」が入力されている。
列CにAとBの日にちの遅い方に「+60日」して表示したい。

例)
A1、3/1日 B1、3/4日と入力されている。
 C1に(この場合B1の方が遅い日なので)+60日して5/4日と表示させたい。


A2、4/10日 B2、4/3日と入力されている。
 C2に(この場合A2の方が遅い日なので)+60日して6/10日と表示させたい。
・ツリー全体表示

【76717】Re:図形のコピー
質問  かかし  - 15/3/4(水) 9:55 -

引用なし
パスワード
   ▼β さん:
>▼かかし さん:
>
>まず、コントロールの印刷をする、しないということとは別に、別シートの同じ場所に
>図形を転記する部分を試してみてください。いかがでしたか?
>
>次に、コントロールの印刷要否の件ですが、印刷のチェックをはずすと、当然、そのコントロール全体が
>(リストも含めて)印刷されません。
>選択された「リスト内の一行のみ」を印刷したいということですか?
>ちょっと、要件がわからないんですが?
>今、「別シートにデータをOFSETで飛ばして」おられるようですから、別シートではなく
>同じシートに選択された情報を転記しておけば、このシートのみで勝負がつくのでは?
>
>いずれにしても、これ以上は、要件が明確ではないのでコメントができません。
>当該のコードをすべてアップいただければ「推測」できるかもしれませんが。

説明がうまく出来なくてすみません。電気使用申込書という書式があるのですが
シートが4枚あり、各シートのデータをリストボックスで選択して入力しております。リスト選択用のシートを別に作成しておき選択して入力しております。
選択したリストを印刷用シートの同位置にリンクして印刷用シートは入力用シートからリンクした場所からオフセットしてリンクデータを参照しております。
各シートとも入力シートと印刷シートがあり印刷シートは非表示にしてあります。
データのみのシートはうまくいっているのですが、1シートのみ3ヶ所に現場の簡略図を入力なりません、印刷シートを表示させてそこに直接入力すれば良いだけのことなんですが入力者が不慣れなため出来れば非表示にしておきたいんです。
出来れば印刷ボタンを押すと自動的に図形を印刷シートにコピーして印刷終了後に印刷シートの図形のみ削除したいんです。

Sub 単線結線図印刷()
'
' 単線結線図印刷 Macro
'
Worksheets("単線結線図-入力画面").Activate


Dim namae As Shape
Dim shapecount As Integer
Dim namaOBJ() As String
Dim i As Integer
Dim sp As Shape
Dim hidari As Double
Dim t As Double


Dim s As Shape
Dim addre As String
shapecount = ActiveSheet.Shapes.Count
ReDim namaOBJ(shapecount)
For i = 18 To shapecount

namaOBJ(i) = ActiveSheet.Shapes(i).Name
'MsgBox namaOBJ(i)

  Sheets("単線結線図-入力画面").Select
With Sheets("単線結線図-入力画面").Shapes(namaOBJ(i))
hidari = .Left
t = .Top
.DrawingObject.Copy
End With
With Sheets("単線結線図印刷")
.Paste
DoEvents
With .Shapes(.Shapes.Count)
.Left = hidari
.Top = t
End With
End With

Next i

'


  Sheets("単線結線図-入力画面").Select

  Sheets("単線結線図印刷").Visible = True
  Sheets("単線結線図印刷").Select

  ActiveWindow.SmallScroll Down:=12
  Range("A1:AK26").Select
  Range("C26").Activate
  ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
    IgnorePrintAreas:=False
  Sheets("単線結線図印刷").Select
  ActiveWindow.SelectedSheets.Visible = False
  Sheets("単線結線図-入力画面").Select
  ActiveWindow.SmallScroll Down:=-33
  Range("F6:T6").Select
End Sub


こんな風に作ってみたんですがうまく動作しません(削除部分はまだ作ってません)
・ツリー全体表示

【76716】Re:図形のコピー
発言  β  - 15/3/4(水) 9:14 -

引用なし
パスワード
   ▼かかし さん:

まず、コントロールの印刷をする、しないということとは別に、別シートの同じ場所に
図形を転記する部分を試してみてください。いかがでしたか?

次に、コントロールの印刷要否の件ですが、印刷のチェックをはずすと、当然、そのコントロール全体が
(リストも含めて)印刷されません。
選択された「リスト内の一行のみ」を印刷したいということですか?
ちょっと、要件がわからないんですが?
今、「別シートにデータをOFSETで飛ばして」おられるようですから、別シートではなく
同じシートに選択された情報を転記しておけば、このシートのみで勝負がつくのでは?

いずれにしても、これ以上は、要件が明確ではないのでコメントができません。
当該のコードをすべてアップいただければ「推測」できるかもしれませんが。
・ツリー全体表示

【76715】Re:図形のコピー
質問  かかし  - 15/3/4(水) 8:39 -

引用なし
パスワード
   ▼β さん:
>▼かかし さん:
>
>>入力シートと印刷シートを分けて入力シートにはフォームコントロールがありこれを印刷したくないために
>
>フォームコントロールも含めて、シェープはそのプロパティで、「オブジェクトを印刷する」の
>チェックをはずしておけば印刷されないと思いますが?
>
説明が悪くて済みませんでした。
コントロールのリストボックスを使用していて選択の内容は印刷したかったのですがオブジェクトの印刷のチェックを外すと選択項目も印刷されなくなってしまいました、何か間違っているのでしょうか?無知ですみません
・ツリー全体表示

【76714】Re:図形のコピー
発言  β  - 15/3/3(火) 18:53 -

引用なし
パスワード
   ▼かかし さん:

>入力シートと印刷シートを分けて入力シートにはフォームコントロールがありこれを印刷したくないために

フォームコントロールも含めて、シェープはそのプロパティで、「オブジェクトを印刷する」の
チェックをはずしておけば印刷されないと思いますが?

ともあれ、以下はSheet1の図を、Sheet2の同じ場所にコピーする参考コードです。

Sub test()
  Dim sp As Shape
  Dim l As Double
  Dim t As Double
  With Sheets("Sheet1").Shapes("Picture 1")
    l = .Left
    t = .Top
    .DrawingObject.Copy
  End With
  
  With Sheets("Sheet2")
    .Paste
    DoEvents  'おまじない
    With .Shapes(.Shapes.Count)
      .Left = l
      .Top = t
    End With
  End With
    
End Sub
・ツリー全体表示

【76713】図形のコピー
質問  かかし  - 15/3/3(火) 17:31 -

引用なし
パスワード
   申込書の書式を作成しました。
入力シートと印刷シートを分けて入力シートにはフォームコントロールがありこれを印刷したくないために別シートにデータをOFSETで飛ばして印刷しております。
定型のシートはうまくいったいるのですが、1シートだけ図形(地図的なもの)を貼り付ける必要があります。
入力シートに浮動で作成した図形を印刷シートの同じ位置にコピーしたいのですがうまくいきません。セルに併せて作成した図形はうまくコピー出来たのですが浮動位置の図形のコピーがどうやっても出来ません、どなたかご教授下さい。図形をすべてコピーして印刷用シートにコピーは出来たのですが,これだとフォームコントロールまでコピーされてしまい印刷シートを作成した意味がありません。
図形の数は決まっており18番目から20番目までだけコピーしたいのです。
図形の名称は取得出来ます。
・ツリー全体表示

285 / 3841 ページ ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free