Excel VBA質問箱 IV

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

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


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

【77717】Re:ハイパーリンクをつけるマクロについて
発言  γ  - 15/12/5(土) 19:03 -

引用なし
パスワード
   > vbaを勉強中なので、この意味が全くわかりません。
> わかる方、出来るだけ易しく教えてください。よろしくお願いします。
βさんから指摘がありましたように、
ご自分でマクロ記録をとって確認するのがベストです。
こういうことは、いくら文章で説明しても分からないときは分かりません。
ご自分でやれば一目瞭然です。

余り時間は経っていませんが、
もし、言葉による追加説明の書き込みを待っていてはいけないので、
賛成票を投じます。
・ツリー全体表示

【77716】Re:ハイパーリンクをつけるマクロについて
発言  β  - 15/12/5(土) 14:02 -

引用なし
パスワード
   ▼こういち さん:

この設定を操作で行うことはできますよね。
念のために以下に記述しますが、この一連の操作をマクロ記録すると目的のコードが生成されますよ。

1.ハイパーリンクをセットするセルを選択
2.挿入タブ ハイパーリンクをクリック
3.このドキュメント内(A)をクリック
4.セル範囲として表示されたツリーの中で目的のシートを選択
5.必要なら 表示文字列(T)にセルに表示する文言を入力
6.OKボタン
・ツリー全体表示

【77715】ハイパーリンクをつけるマクロについて
質問  こういち  - 15/12/5(土) 13:40 -

引用なし
パスワード
   目次の一覧にハイパーリンクをつけてそれぞれのシートに移動するように
vbaで設定するにはどのような構文を書けばよいのでしょうか。
ヒントとして次のような参考資料がついています。

参考 Hyperlinks オブジェクトのAddメソッドの書式
   Object.Hyperlinks.Add _
   Anchor:=リンクセル,Address:=飛び先 1, SubAddress:=飛び先2,TextToDisplay:=リンクセルに表示内容
※今回のObjectはアクティブシートである。

vbaを勉強中なので、この意味が全くわかりません。わかる方、出来るだけ易しく教えてください。よろしくお願いします。
・ツリー全体表示

【77714】Re:非表示の別ブックにシートコピーでき...
発言  マナ  - 15/12/4(金) 20:46 -

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

数分から1時間程度かかるのであれば、
そもそも画面を見続けるわけではないと思うので
ステータスバーのちらつきが気になるものなの?
という気がしますが…

ユーザーフォームを表示させておいて、
プログレスバーやラベルで
進捗状況、現在の条件等を確認できるようにする
という案はどうでしょうか。

いろいろ考えたうえでの質問のようなので
私なんかがアドバイスできそうになく、これで最後にします。
・ツリー全体表示

【77713】Re:非表示の別ブックにシートコピーでき...
回答  yy  - 15/12/4(金) 8:10 -

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

マクロブックは1つのツールのような感じになっていて、
設定シートというシート上に、実行ボタンや
対象フォルダや実行条件の設定項目が配置されていて、
これを設定してマクロを実行する感じになっています。
フォルダの中のファイル数にもよりますが、
処理が終わるまでにある程度の時間が(数分から1時間程度)
かかるためステータスバーに進行状況を表示しています。
今、どのような条件で実行させているのかが分かるように、
設定シートの画面は表示させておきたいです。
・ツリー全体表示

【77712】Re:非表示の別ブックにシートコピーでき...
発言  マナ  - 15/12/3(木) 21:15 -

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

>非表示ブックにシートをコピーすることができるケースもありますよね?

そうでしたか。ごめんなさい。
トラブったときが心配ですが、マクロブックも非表示では嫌ですか。

Application.Visible = False
・ツリー全体表示

【77711】Re:Functionへの配列の渡し方
発言  β  - 15/12/3(木) 17:31 -

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

アップされたコードは掲示板様に手打ちされたんだと思いますが、実際のものを
コピペしたほうがよろしいですよ。

それはさておき。

アップされた Call 処理A(day) を Call 処理B(day) に変更して実行すると
少なくとも、エラーにはならず、最後まで実行されますよ?
・ツリー全体表示

【77710】Functionへの配列の渡し方
質問  taro  - 15/12/3(木) 17:04 -

引用なし
パスワード
   初めまして。

こちらにはお世話になっています。
早速質問なのですが、配列を引数としてFunctionに渡す処理で、
「配列には割り当てられません」のエラーとなります。

おそらくday()のカッコ内に何か必要と思って、色々試したのですがうまくいきません。
また、Varient型を使えばできるのかもしれませんが、
あまり使わない方が良いというHPをいくつか見かけましたので、
使わないやり方を教えて頂きたいです。
済みませんが、よろしくお願いします。

Public Sub

  'Date型配列宣言
  Dim day(3) As Date

  '初期化
  day(0)="2001/1/1"
  day(1)="2001/1/1"
  day(2)="2001/1/1"
  day(3)="2001/1/1"

  'Data型配列を引数として処理B呼び出し
  Call 処理A(day)

End Sub


Public Sub 処理B(day() As Date)

  For i = 0 To 3
  'Data型配列を引数として処理C呼び出し
    temp = 処理C(day())  ←ここで「配列には割り当てられません」のエラー
  Next

End Sub

Function 処理C(day() As Date) As Date

    色々な処理

End Function
・ツリー全体表示

【77709】Re:非表示の別ブックにシートコピーでき...
質問  yy  - 15/12/3(木) 9:37 -

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

仕様を確認したのは、
非表示ブックにシートをコピーすることができるケースもあるからです。

sampleでは1つのExcelファイルだけを開いていますが、
実際のプログラムでは、複数のExcelファイルを順番に
開いて閉じる処理を繰り返しています。
このため、プログラム実行中の間、
常にタスクバーがちらちら動いて、
見苦しいので非表示にしたかったのです。
一時的に表示にして作業後に非表示にもしてみましたが
タスクバーはちらちら動いています。
・ツリー全体表示

【77708】Re:非表示の別ブックにシートコピーでき...
質問  yy  - 15/12/3(木) 9:34 -

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

非表示ブックにシートをコピーすることができるケースもありますよね?
・ツリー全体表示

【77707】Re:非表示の別ブックにシートコピーでき...
発言  γ  - 15/12/2(水) 21:27 -

引用なし
パスワード
   仕様のようだと申し上げた。あくまで私見だ。
あなたと論争するつもりもないし、何の益もない。
こんな話はいくらでもある。
仕様であるかどうかをハッキリさせたいという必要性を感じているなら、
MS社に問い合わせるのが筋だ。聞く相手が違う。
事実が判明したら、皆さんに報告すると満足する人もいるかもしれない。

仕様だろうがバグだろうが、そのように動作すること自体は事実なので、
そして、その動作自体を変えることはできないんだから、
私にとっては、そんな境界線の話はどうでもいい。
それよりも一時的に表示にして作業後に非表示にすれば済むことだと
思っている。以上。
・ツリー全体表示

【77706】Re:非表示の別ブックにシートコピーでき...
発言  マナ  - 15/12/2(水) 21:13 -

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

少しだけ試してみました。

非表示ブックに対して
・シートの追加、削除はできそうですが
・コピー、移動はできないみたいです
・ツリー全体表示

【77705】Re:アクセス制限されているフォルダへの...
発言  はむ  - 15/12/2(水) 8:55 -

引用なし
パスワード
   ご回答ありがとうございます。

調べたところnet useなるものを使えば上手くいくのかと思いましたが、net useでは解決できませんでした。

別のアプローチも考えてみます。
・ツリー全体表示

【77704】Re:非表示の別ブックにシートコピーでき...
質問  yy  - 15/12/2(水) 8:37 -

引用なし
パスワード
   γ さん:早速のご回答有難うございます!

その仕様の内容をもう少し詳しく教えてほしいのですが、

「非表示のブックからシートのコピーはできるが
 非表示のブックへのシートのコピーできない。」

という仕様になっているということでしょうか。

よろしくお願いします。
・ツリー全体表示

【77703】Re:四角形吹き出しの先っぽにあたる点が...
発言  γ  - 15/12/1(火) 21:13 -

引用なし
パスワード
   ▼mumu さん:
>書いていただいたコード、今の私の知識だと
>半分も理解できてないですが、何とか読み解いて

私もAdjustmentsなんて触ったことはなかった。
それで実験してみた。

sp.Adjustments.Item(1)=0
sp.Adjustments.Item(2)=0
としたら、長方形の中心点を指した。

sp.Adjustments.Item(1)=1
sp.Adjustments.Item(2)=1
としたら、
その中心点を起点に、長方形の横幅、縦幅だけずらした点を指した。
それで、コードをでっちあげてみた。
参考になれば。
・ツリー全体表示

【77702】Re:アクセス制限されているフォルダへの...
発言  γ  - 15/12/1(火) 21:08 -

引用なし
パスワード
   マクロでアクセスするユーザーであっても、
何か特別の計らいをしてくれるわけではないと思います。

適当な譬えかどうか不明ですが、
マンションの一住民が、マンション全戸に出入りを要望するような感じです。
それは管理人さんの権限です。
管理人さんを通さないと勝手な例外は作れません。

何か別のアプローチを工夫してみてはどうでしょう。
・ツリー全体表示

【77701】Re:非表示の別ブックにシートコピーでき...
発言  γ  - 15/12/1(火) 21:02 -

引用なし
パスワード
   解決策ということでもないのですが、
それは仕様のようですから如何ともしがたいでしょう。
コピーしてから非表示にするとか、別の方法で対応してはどうでしょう。
・ツリー全体表示

【77700】アクセス制限されているフォルダへの保存
質問  はむ  - 15/12/1(火) 17:45 -

引用なし
パスワード
   お世話になります。

ファイル管理のマクロを作成したいと思っています。
ファイルを保存するフォルダへはマクロからのみファイルを保存、削除、上書きできるようにし、windows上からは直接いじれないようにしたいです。
そこでマクロからユーザ名、パスワードを指定してファイルを保存などすることは可能でしょうか?


サーバ名:server
フォルダ名:tf
一般ユーザ:アクセス権なし
マクロ用ユーザ:フルアクセス

一般ユーザがマクロを使い、ファイルを保存するときマクロ用ユーザで保存したいです。


お手数ですが、よろしくお願いします
・ツリー全体表示

【77699】非表示の別ブックにシートコピーできない
質問  yy  - 15/12/1(火) 10:47 -

引用なし
パスワード
   自分のExcelブック(自ブック)からVBAで、
もう1つ別のExcelブック(他ブック)を非表示で開いて、
自ブックと他ブックの間でシートをコピーしたいのですが、
他ブックのシートを自ブックにコピーすることはできるのですが、
自ブックのシートを他ブックにコピーするとなぜかエラーになります。
例えば、以下のsampleで、
(A)では、正しくシートがコピーされるのですが、
(B)では、
「実行時エラー'1004' WorksheetクラスのCopyメソッドが失敗しました。」
というエラーになります。
なぜ(A)はOKなのに(B)ではエラーになるのでしょうか。
(B)の部分をどのように記述すればよいのでしょうか。

よろしくお願いします。(Windows7,Excel2010)

--------------------------------------------------
Sub sample()

 Dim ExcelBook As Excel.Workbook
 Dim FileNameFullPath As String

 FileNameFullPath = ThisWorkbook.Path & "\Book1.xlsx"
 Set ExcelBook = Workbooks.Open(FileNameFullPath, UpdateLinks:=0)

 Application.Windows("Book1.xlsx").Visible = False

 '他ブックのシートを自ブックにコピーする (正常)
 ExcelBook.Worksheets("Sheet1").Copy after:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count) '<-(A)

 '自ブックのシートを他ブックにコピーする (エラー)
 ThisWorkbook.Worksheets("Sheet1").Copy after:=ExcelBook.Sheets(ExcelBook.Sheets.Count) '<-(B)

 Application.Windows("Book1.xlsx").Visible = True

 Application.DisplayAlerts = False
 ExcelBook.Save
 ExcelBook.Close
 Application.DisplayAlerts = True
 Set ExcelBook = Nothing

End Sub
--------------------------------------------------
(注記1) Application.Windows("Book1.xlsx").Visible = False
    の部分を、
    Application.ScreenUpdating = False
    にすると、このエラーは起きませんが、
    タスクバーに表示されてしまいます。
(注記2) Set ExcelBook = Workbooks.Open(FileNameFullPath, UpdateLinks:=0)
    の部分を、
    Dim objEX As Excel.Application
    Set objEX = CreateObject("Excel.Application")
    Set ExcelBook = objEX.Workbooks.Open(FileNameFullPath, UpdateLinks:=0)
    のうに、別インスタンスで開くと、このエラーは起きませんが、
    別インスタンス間ではシートのコピーができません。
(注記3) シートのコピーをコピー&ペーストの機能で代用すると、
    セルに施されているフィルターなどの設定が外れてしまいます。
・ツリー全体表示

【77698】Re:四角形吹き出しの先っぽにあたる点が...
お礼  mumu  - 15/11/30(月) 23:29 -

引用なし
パスワード
   γ 様

迅速な回答、感謝いたします。
すごいです。
やりたいことに一歩近づけました。

書いていただいたコード、今の私の知識だと
半分も理解できてないですが、何とか読み解いて
自分のものにしたいです。

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

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