Excel VBA質問箱 IV

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

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


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

【79746】Re:CopyFile
お礼  VBP  - 18/3/29(木) 12:28 -

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

自己解決しました。
単に記述ミスでした。
すいません、ありがとうございました。
・ツリー全体表示

【79745】Re:CopyFile
発言  VBP  - 18/3/29(木) 10:54 -

引用なし
パスワード
       γさん
返信ありがとうございます。
すいません。
間違えていました。
2回表示されます。

>どの行でメッセージが出るんですか?

たぶん、コピーの時と属性を変更した時だと思います。

>示されたものはエラーにしかならないですが?

エラーにはならないです。
・ツリー全体表示

【79744】Re:別シートにコピー
発言  γ  - 18/3/28(水) 21:34 -

引用なし
パスワード
   確認していませんが、それだとkはいつも同じなので、
うまく転記できていないと思いますが。

そっくりは使えませんが、考え方を参考にして下さい。
Sub test()
  Dim i As Long
  Dim k As Long
  
  k = 1
  For i = 1 To 100 Step 5
    Cells(i, 1).Resize(5, 1).Copy Cells(k, 2)
    k = k + 7
  Next
End Sub
・ツリー全体表示

【79743】Re:リッチで押し込めるボタン
発言  γ  - 18/3/28(水) 21:25 -

引用なし
パスワード
   何をもってリッチ?カッコいいとするのか曖昧ですし、
他人からあなたが依頼されたものですから、
他人に依存せず、ご自分でプロパティを調べるなりして、
ご自分で判断下さい。
貴兄ほどのスキルを持った方が安易に質問される理由がわかりません。
・ツリー全体表示

【79742】Re:CopyFile
発言  γ  - 18/3/28(水) 21:22 -

引用なし
パスワード
   どの行でメッセージが出るんですか?
示されたものはエラーにしかならないですが?
・ツリー全体表示

【79741】別シートにコピー
質問  ノンボ  - 18/3/28(水) 18:32 -

引用なし
パスワード
    初心者です。よろしくお願いします。

 Sheet1の1列目にデータが100行ほどあります。空白はありません。そのデータをSheet2の2列目2行へコピーするため下記コードを記述しました。(5行づつ、2行間をあけてコピーしたいのですが)
 Sub test
 dim i as long,k as long
 k=2
 for i=2 to worksheets("Sheet1").cells(rows.count,1).end(xlup).row
   
 worksheets("Sheet2").cells(k,2)=worksheets("Sheet1").cells(i,1).value

 Next i
 End Sub
 連続してコピーはできたのですが、5行づつ2行、間をあけてコピーしたいのですが、
 どのようにコードを編集したらいいかわかりません。ご教授お願いします。
・ツリー全体表示

【79740】リッチで押し込めるボタン
質問  りった  - 18/3/28(水) 12:56 -

引用なし
パスワード
   見た目がリッチ(※1)で押し込めるボタンを作るにはどうしたら良いでしょうか?

制約:シートの保護は使わない。
   スプレッドシート(普通のシート)上での操作。

フォームコントロール/ActiveXコントロール
→ リッチにする方法が分かりません

オートシェイプにマクロ登録
→ そのままでは押し込めないのは、マクロでなんとかする(※2)としても、
  押そうとしたのにオートシェイプが選択されてしまうのは許容出来ません。

※1 例えば、グラデーション。何じゃないとダメというのは特になく、
  カッコいいことが条件です。
  (条件が曖昧ですが、依頼元の要求がそうなのでご容赦ください。)
※2 ボタンclickの処理開始時に、押した画像を表示し、処理が終わった時に
  離した画像を表示する。(未検証)
・ツリー全体表示

【79739】CopyFile
質問  VBP  - 18/3/28(水) 12:02 -

引用なし
パスワード
   デスクトップの111というフォルダの中にg1.txt、g2.txt、g3.txt、g4.txt、g5.txtがあります。
すべて隠しファイルです。
その5つのテキストファイルを以下にコピーします。

g1.txtをC:\test1\へコピー
g2.txtとg3.txtをC:\test2\へコピー
g4.txtとg5.txtをC:\test3\へコピー
コピー終了後、隠し属性を標準に変更。

'--------------------------------------------------------------------------
Call Fso.CopyFile(コピー元,C:\test1\)
Call Fso.CopyFile(コピー元,C:\test2\)
Call Fso.CopyFile(コピー元,C:\test3\)
Set Fob = Fso.GetFile(C:\test1\g1.txt)
Set Fob = Fso.GetFile(C:\test2\g2.txt, C:\test2\g3.txt)
Set Fob = Fso.GetFile(C:\test3\g4.txt, C:\test3\g5.txt)
Fob.Attributes = 0
MSG3 = MsgBox("完了しました!", vbOKOnly + vbInformation, "完了!")
'--------------------------------------------------------------------------

上記コードでコピーは完了するのですが、メッセージが3回出てきます。
これをすべてのコピーが完了後、1回だけメッセージを出すにはどうすればいいのでしょうか?
・ツリー全体表示

【79738】Re:Cellsのエラー(VBA)
お礼  やまだん  - 18/3/27(火) 13:48 -

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

素早いご対応ありがとうございます!
教えていただいた方法で作動しました!
・ツリー全体表示

【79737】Re:マスターファイルを更新させない方法
お礼  りった  - 18/3/26(月) 20:17 -

引用なし
パスワード
   読み取り専用ファイルにすると、ローカルにコピーして、「読み取り専用」を解除するのがいつもの手順になるので、いつもののりでサーバのファイルを読み取り専用解除されないか心配です。

ファイルのアクセス権は、
・わかってない人が多いので、フォーマット直したいけと直せないってことになる心配があります。
・フォーマットを直した後、読み取り専用にするのを忘れないか心配です。

サーバのフォーマットが壊されるのを心配してること、要員教育による解決をなかば諦めてることから、状況お察しください。
・ツリー全体表示

【79736】Re:Cellsのエラー(VBA)
回答  hatena  - 18/3/26(月) 17:21 -

引用なし
パスワード
   >i = Cells("3,n") - Range("H8")

下記に変更してください。

i = Cells(3, n) - Range("H8")

Cellsの引数は、行、列 を数値で指定します。
・ツリー全体表示

【79735】Re:マスターファイルを更新させない方法
質問  hatena  - 18/3/26(月) 17:16 -

引用なし
パスワード
   >あきらめたこと:
>・サーバーの「各自のPCにコピーして使ってください.TXT」が削除されたら
> 上書きされる。
>・通常非表示のシートを作ること。(どうしても必要なら、
> (3)にてそれだけVISIBLE=TRUEにしない)


私の提案した、読み取りのみできるようにアクセス権の制御をするのが一番確実だし、上記の点もあきらめる必用はないのだが、なぜ、採用しないのでしょうか。
それができない理由があるのでしょうか。
・ツリー全体表示

【79734】Cellsのエラー(VBA)
質問  やまだん  - 18/3/26(月) 16:47 -

引用なし
パスワード
   ExcelのVBAに関して、
下記のように、特定の数値データから一定値に達した部分の行数を読み込みたく
プログラムを作成したのですが、

Sub Getn()
Dim i As Long
Dim n As Integer

n = 3

Do Until i > 0
i = Cells("3,n") - Range("H8")
n = n + 1
Loop

Cells関数のエラーで、プロシージャの呼び出しまたは因数が不正ですというエラーが出ます。
nの部分を数値に換えるとデバック自体は進むので、関数の定義の仕方が間違っているのかと思うのですが、
初心者で調べてもわからなくて、ここで質問させていただきました。
・ツリー全体表示

【79733】Re:マスターファイルを更新させない方法
お礼  りった  - 18/3/26(月) 15:14 -

引用なし
パスワード
   色々情報が少なかったようで済みません。

解決しました。

(1)警告シート(「マスターなので上書き禁止」と強烈に書いたシート)を
  VISIBLE=TRUE 通常のシートをVISIBLE=FALSEにして
  サーバーの共有フォルダに保存。
(2)(1)で保存したフォルダに「各自のPCにコピーして使ってください.TXT」を置く。
(3)BOOKのOPENにて、同一フォルダに
  「各自のPCにコピーして使ってください.TXT」が無かったら
  警告シートをVISIBLE=FALSEにし、他のシートをVISIBLE=TRUEにする。

あきらめたこと:
・サーバーの「各自のPCにコピーして使ってください.TXT」が削除されたら
 上書きされる。
・通常非表示のシートを作ること。(どうしても必要なら、
 (3)にてそれだけVISIBLE=TRUEにしない)

マスターファイルを上書きしてしまうダメな子に対しても、対策になってるかと思います。
・ツリー全体表示

【79732】Re:マスターファイルを更新させない方法
回答  hatena  - 18/3/24(土) 14:58 -

引用なし
パスワード
   ▼りった さん:
>「開いたときに、サーバのパスだったらポップアップを出す」だと、ポップアップ出てるのに上書きされるかもしれません。ネットワークドライブ割り当ててたら正しく判定できません。

サーバーの共有フォルダーにファイルがあるのですよね。

なら、サーバー側でその共有フォルダーを読み取り専用に設定しておけばいいのでは。
読み取り専用で開かれるので上書き保存はできなくなります。
・ツリー全体表示

【79731】Re:マスターファイルを更新させない方法
発言    - 18/3/23(金) 22:41 -

引用なし
パスワード
   苦情のつもりでは無いので悪しからず

りった さんは
他の投稿に回答もされているくらいの
力をお持ちなのに何故御自身の投稿に
十分な情報を記載されないのかな? と

シートがどのくらい有るとか
参照される方が単独のシートを使用するのか
複数のシートを使用し

内容が改変?されたことがあったから問題なのか

改変されないでも上書きされるのが問題なのか


私なら思いつくだけの条件等は記載すると思うし

絶対必要なことなら力業ででもスマートな方法で無くても
とりあえず可能な対策をやっちゃうんし、

使用者に上書きしないように個人個々にでも
念押しに行きますけどね

(今思いついた方法)
使用者全員にメールでマスター変更ごとにファイルを配布し個人の責任で
そのファイルを使用してもらう

情報が十分に有れば識者の方たちより確実な回答なり
アドバイスが得られやすいと思いますが

独り言でした。
・ツリー全体表示

【79730】Re:マスターファイルを更新させない方法
お礼  りった  - 18/3/23(金) 14:17 -

引用なし
パスワード
   回答ありがとうございます。
面白い方法だとは思うのですが、シートが多数あるので今回の件では厳しいです。
・ツリー全体表示

【79729】Re:マスターファイルを更新させない方法
回答    - 18/3/23(金) 11:38 -

引用なし
パスワード
   ▼りった さん:
>案件毎にマスターファイルをコピーして、コピーしたファイルを編集してほしいのですが、マスターファイルを上書きしてしまう駄目な子がいます。(誰だか不明)

上書き自体がダメなのですか?
内容が変更されていなくても

上書き自体がダメで無く、わざとデータを変更するような
悪意が無いなら

隠しタブに元のデータを入れておき、BOOKオープン時に
隠しタブからデータをコピーしてくるようにするとか
・ツリー全体表示

【79728】Re:マスターファイルを更新させない方法
質問  りった  - 18/3/23(金) 10:11 -

引用なし
パスワード
   マスタファイルを置くフォルダに、「マスターファイルは上書き禁止.txt」を置いておく。
マスタファイルのアクティブシートに全画面サイズで「マスターファイルは上書き禁止」と書いたオートシェイプを置いておく。
マスターファイルのopenでDIRし、「マスターファイルは上書き禁止.txt」が無かったら、上記オートシェイプをvisible=falseする。
としたのですが、openでは早すぎるのか、visible=falseが効きませんでした。
ファイルオープン時に描画された後で発生するイベントは有りますでしょうか?
・ツリー全体表示

【79727】Re:マスターファイルを更新させない方法
お礼  りった  - 18/3/23(金) 9:27 -

引用なし
パスワード
   回答ありがとうございます。
試してみましたが、テンプレートを上書きされてしまいそうです。。。
システム的な対処は困難かもしれませんね。
・ツリー全体表示

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