Excel VBA質問箱 IV

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

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


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

【79404】アクティブセルと同番地の別シートのセル...
質問  Charo  - 17/10/3(火) 14:39 -

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

1つのBookに2つのシートがあります。
シート1のA1がアクティブの時にシート2のA1の内容をメッセージボックスに表示するフォームボタンを作りたいのです。

今はまだ、シート1のアクティブセルの内容をMsgboxに表示するところまでしかできていません。
Sub ボタン1_Click()
MsgBox ActiveCell.Value
End Sub

どのように書いたらよいか、ご指導願います。
・ツリー全体表示

【79403】Re:最終行が変動する際のコピー方法につ...
発言  マナ  - 17/10/1(日) 16:49 -

引用なし
パスワード
   これだけならば、with〜end withの必要ありませんでした。

Range("A1", Range("A" & Rows.Count).End(xlUp)).Offset(, 1).Formula = "=A1*2"
・ツリー全体表示

【79402】Re:最終行が変動する際のコピー方法につ...
発言  マナ  - 17/10/1(日) 13:01 -

引用なし
パスワード
   ▼Pさん さん:
Sub test()
  With Range("A1", Range("A" & Rows.Count).End(xlUp))
    .Offset(, 1).Formula = "=A1*2"
  End With
End Sub
・ツリー全体表示

【79401】最終行が変動する際のコピー方法について
質問  Pさん  - 17/10/1(日) 12:50 -

引用なし
パスワード
   最終行が変動するデータにおいて最終行までコピーをする方法が分からず困っております。

A1〜A*(最終行が変動するため*としてあります)まで値が入っており、
隣のB1〜B*(B1には数式が入っており同じ内容でB*まで下方向へコピーしたい)

これを実現するにはVBAでどのような記述をすれば良いでしょうか?
よろしくお願いいたします。
・ツリー全体表示

【79400】Re:昨日まで開けたvbaファイルが開けなく...
回答  エクセル素人  - 17/9/30(土) 16:39 -

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

教えていただいたURLの対応で無事動作するようになりました。
大変助かりました!
・ツリー全体表示

【79399】Re:昨日まで開けたvbaファイルが開けなく...
回答  AddinBox(角田)  - 17/9/30(土) 15:07 -

引用なし
パスワード
   原因と緊急対処法は既に判明しています。

Office2016 バージョン1708以降で日本語のVBAモジュール名を含むファイルを開くとエラー
https://blogs.msdn.microsoft.com/office_client_development_support_blog/2017/08/23/ver1708-issue-japanesenamevbamodule/

エラーになったブックを、エラー状態で上書き保存していないならば、
上記対処で復旧できます(ブックに個別に対処する必要なし)。

もし、マクロが消えた状態で上書き保存してしまっている場合は、
そのブックについては過去のバックアップ等からリカバリーする
必要があります。
・ツリー全体表示

【79398】昨日まで開けたvbaファイルが開けなくな...
質問  エクセル素人  - 17/9/30(土) 11:05 -

引用なし
パスワード
   マクロファイル(xxx.xlsm)でほかのマクロファイル(AAAAA.xlsm)を開くという処理を行っているのですが、
昨日は、問題なくファイルを開くことができたのですが、本日、同じ処理を実行すると以下のエラーがでるようになりました。

開けなくなったファイルをバックアップしてあるファイルに置きかえても同じ状況です。

一つ変わったことをしたといえば、今朝PCのアップデートがありましたが、こちらはエクセルのアップデートではないという認識です。


エラーの状況は以下となっております。
↓↓↓以下エラー状況↓↓↓

vbaで他のマクロファイルを開こうとすると、以下エラーが出て開かない。
---------------------------------------------------------------------------
実行時エラー '1004':

'Open' メソッドは失敗しました: 'Workbooks' オブジェクト
---------------------------------------------------------------------------


該当のファイルを直接ファイルアイコンをクリックして開こうとすると、
まず、以下エラーがでる。
---------------------------------------------------------------------------
'AAAAA.xlsm' の一部の内容に問題が見つかりました。可能な限り内容を回復しますか回復しますか? ブックの発行元が信頼できる場合は[はい]をクリックしてください。
---------------------------------------------------------------------------

[はい]を選択すると、以下メッセージがでる。
---------------------------------------------------------------------------
読み取れなかった内容を修復または削除することにより、ファイルを開くことができました。
削除されたパーツ: /xl/vbaProject.bin パーツ(Visual Basic for Applications (VBA))
---------------------------------------------------------------------------

vbaのエディターを見るとモジュールファイルが消えている。
・ツリー全体表示

【79397】Re:excel mac 2016 にてクラッシュする問...
お礼  Dc  - 17/9/26(火) 19:10 -

引用なし
パスワード
   確かに仰るとおりですね。
エラーを吐くのであれば対処の仕様もありますが、クラッシュするとなるともっと根本的な問題なような気が致します。
わざわざお返事ありがとうございました。
・ツリー全体表示

【79396】Re:excel mac 2016 にてクラッシュする問...
発言  γ  - 17/9/26(火) 7:48 -

引用なし
パスワード
   ▼Dc さん:
>1)マクロを有効にしないを選択した場合
>ブックBのみならず、ブックAのマクロも無効にされ、ブックBを開くのに使ったそのプロージャーさえその場で中断されます。この中断を回避する方法はございますでしょうか?
無いと思います。マクロを無効にするわけですから。

>2)マクロを有効にするを選択した場合
>そのままブックBを開くのに使ったプロージャーが最後まで実行されます。
>しかし、その後ブックBを閉じて、再度ブックA上で任意のマクロを実行しようとするとエクセルがクラッシュします。このクラッシュの原因はどんなものでしょうか?また、回避する方法はございますでしょうか?

クラッシュの原因はユーザーサイドでは何もわかりません。
それが普通です。
予期せぬことなわけですから、原因がわかろうはずもありませんし、
回避策もわかりません。

もっとも、OSのなんらかの更新処理が関連して発生する事象
ということもありえます。
その対応策が公開されることもありますから、
ネット上の情報などに気を配るくらいしか、対応策は無いと思います。

また、Microsoftの運営するフォーラムなどで質問してみることも
有益かもしれません。
こちらのサイトは流量も乏しく、訪れる人も少なくなっているようです。
・ツリー全体表示

【79395】excel mac 2016 にてクラッシュする問題
質問  Dc  - 17/9/26(火) 3:51 -

引用なし
パスワード
   2つのマクロ有効ブック(xlsm)A,Bがあるとします。
この状況下で、ブックAからworkbooks.openを使ってブックBを開きます。
するとMac上ではブックBを開く際にマクロを有効にするか否か聞かれます。

この後の挙動について2つ質問点がございます。

1)マクロを有効にしないを選択した場合
ブックBのみならず、ブックAのマクロも無効にされ、ブックBを開くのに使ったそのプロージャーさえその場で中断されます。この中断を回避する方法はございますでしょうか?

2)マクロを有効にするを選択した場合
そのままブックBを開くのに使ったプロージャーが最後まで実行されます。
しかし、その後ブックBを閉じて、再度ブックA上で任意のマクロを実行しようとするとエクセルがクラッシュします。このクラッシュの原因はどんなものでしょうか?また、回避する方法はございますでしょうか?

特異的な状況下での問題でありますが、どうぞどなたかお答えしていただけると大変嬉しく思います。
よろしくお願いいたします。
・ツリー全体表示

【79394】Re:選択行を条件付けて転記(切取・貼付)
発言  マナ  - 17/9/14(木) 19:21 -

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

>丸投げで投稿してしまって申し訳ないです。

エラーがでるコードでもよかったのに…
それを提示してくれるだけで印象がかわります。

-----

>もしアクティブ行b列が

ということであれば、これでできます。

Option Explicit


Sub test2()
  Dim 名前 As String
  Dim 元データ As Range
  Dim 転記先 As Range
 
  Set 元データ = ActiveCell.EntireRow
    
  名前 = 元データ.Range("B1").Value '★
  
  Set 転記先 = Sheets(名前).Range("A" & Rows.Count).End(xlUp).Offset(1)
 
  元データ.Copy 転記先
  元データ.Delete

End Sub


------

ただし、もしその名前のシートが存在しないとエラーで止まっちゃうので
実際に使うとすると、そうならないように対策が必要です。
・ツリー全体表示

【79393】Re:選択行を条件付けて転記(切取・貼付)
お礼  けい  - 17/9/14(木) 17:08 -

引用なし
パスワード
   マナさん
返信をありがとうございます。このサイトを見つけ慌てて投稿してしまいましたが、サイトの基本方針を後で見て、丸投げで投稿してしまって申し訳ないです。
全くの初心者でIF〜やselect caseなど片端から入れてみましたが、そもそもの構文の基本も分からないので、今は急ぎ必要だったこともあり、マナさんから回答頂いたコードを使い、氏名一人に1つのコードで作成して、(氏名(シート)は5人(枚)あるので)5つのコードを各コマンドボタンに貼り付けようと思います。
そちらでうまくいきましたので、使わせて頂きます。
本当に助かりました。ありがとうございました!!
条件分岐はもう少し勉強してから自力で頑張りたいと思います。
m(_ _)m
・ツリー全体表示

【79392】Re:選択行を条件付けて転記(切取・貼付)
発言  マナ  - 17/9/13(水) 21:59 -

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

>自分でif〜then elsef endifを挿入して作成してみたのですがすまくいかず。。

そのコードを教えてください。
・ツリー全体表示

【79391】Re:選択行を条件付けて転記(切取・貼付)
質問  けい  - 17/9/13(水) 12:52 -

引用なし
パスワード
   マナさん
さっそくのご回答、ありがとうございます!!
ひとつ巧くいかない点があり、申し訳ありませんが教えて頂ければと思います。

サンプルデータを作成してマクロの実行をしたのですが、「もしアクティブ行b列が『田中だったら』『鈴木だったら』」「『田中or鈴木』シートに」という条件分岐(?)がうまくいきません。自分でif〜then elsef endifを挿入して作成してみたのですがすまくいかず。。
すみませんよろしくお願いします。
(質問のシート名「佐藤」は間違いですすみません)
・ツリー全体表示

【79390】Re:CSVファイルを読み込み書き換えする方...
発言  γ  - 17/9/13(水) 7:33 -

引用なし
パスワード
   不明な点を明確にして質問して下さい。
テキストファイル(CSVファイル)を直接読み込んだり、書き込んだりする部分ですか?
それともCSVファイルの一行の文字列の置換部分ですか?
少なくとも、2,3行程度の処理前と処理後のサンプルを提示するとよいでしょう。
お互いの誤解を招くことがありません。

ファイルの読み書きは
Open ステートメント
Line Input # ステートメント
Print # ステートメント
などを使います。
ヘルプを参照してください。

文字列の置換は Replace関数です。
他の関数と組み合わせると対応可能なはずです。
・ツリー全体表示

【79389】Re:選択行を条件付けて転記(切取・貼付)
発言  マナ  - 17/9/12(火) 18:57 -

引用なし
パスワード
   ▼けい さん:
参考コードです。

Option Explicit

Sub test()
  Dim 名前 As String
  Dim 元データ As Range
  Dim 転記先 As Range
  
  名前 = "鈴木"
  
  Set 元データ = ActiveCell.EntireRow
  Set 転記先 = Sheets(名前).Range("A" & Rows.Count).End(xlUp).Offset(1)
  
  元データ.Copy 転記先
  元データ.Delete

End Sub
・ツリー全体表示

【79388】選択行を条件付けて転記(切取・貼付)
質問  けい  - 17/9/12(火) 18:01 -

引用なし
パスワード
   よろしくお願いします。vbaは殆ど分からず、職場で必要に迫られ作成中です。
例ですが、sheet1に一覧表(a1/b1/c1にそれぞれ日付/氏名/内容の項目があり、2行目からデータ)があります。b1には「鈴木」「田中」の名前が入っています。シートは3枚(「sheet1」「鈴木」「佐藤」)あり、プロジェクト終了後にsheet1の終了した行を選択したら、b列の名前を判断して、該当する名前のシートに切り取り→貼付(各シートの最終行に)したいと思ってます。
マクロでやりたいことは、アクティブな行を選択した上で、その後の転記と、元の行削除をしたいのですが、どのようなコードになるのか教えて頂きたいです。
・ツリー全体表示

【79387】Re:CSVファイルを読み込み書き換えする方...
発言  γ  - 17/9/11(月) 20:01 -

引用なし
パスワード
   ▼ねこ さん:
>・「,(カンマ)」で登録されているものをすべて「","」に書き換える
ということは、セパレータとしてのカンマはやめるということですか?
それともセパレータの前後に"を付けると言う意味ですか?

また、
>・「,(カンマ)」で登録されているものをすべて「","」に書き換える
であるなら、
>・「T,」「D,」「H,」
は、
「T","」「D","」「H","」になっているはずですが、
>「T,"」「D,"」「H,"」に書き換える
との関係はどうなっていますか?
・ツリー全体表示

【79386】Re:特定セルだけオートコンプリート無効化
お礼  りった  - 17/9/11(月) 18:25 -

引用なし
パスワード
   >でしたら、そのブックを閉じるときに元に戻せばよいのでは?
なるほど。閉じるときにマクロを動かせるんですね。
やってみたら、まずは問題なく動いてそうです。
(EXCELLが落ちたらだめなんでしょうが。。。)

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

【79385】CSVファイルを読み込み書き換えする方法
質問  ねこ  - 17/9/11(月) 15:38 -

引用なし
パスワード
   現在、CSVファイルを読み込み
・「,(カンマ)」で登録されているものをすべて「","」に書き換える
・「T,」「D,」「H,」を「T,"」「D,"」「H,"」に書き換える
・全ての行末尾に「,(カンマ)」を追加する。

という処理を一度のVBAで行い、再度CSVに書き込みを行おうとしておりますが
上手くいきません。(勉強不足ですみません。。)

どなたか一度の処理にはこだわりませんので、お知恵をお貸しいただけないでしょ
うか?

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

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