Excel VBA質問箱 IV

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

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


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

【81458】Re:セルの保護について
発言  マナ  - 20/8/15(土) 13:42 -

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

>どうすれば常に3行目のみロックを外すことができますでしょうか。】

毎回、全セルロックしてから、
3行目のみロックを解除

With ActiveSheet
  .Unprotect
  .Rows(3).Insert
  .Cells.Locked = True
  .Rows(3).Locked = False
  .Protect
End With
・ツリー全体表示

【81457】セルの保護について
質問  takumi  - 20/8/15(土) 12:58 -

引用なし
パスワード
   VBA初心者です。
ご教授いただきたく利用させていただきました。

やりたいこと。
【ユニフォームの在庫データ入力後、更新ボタンを押すと、3行目にセルが挿入され、3行目以外には、保護がかかりデータ変更不可にするプログラムを構成したいです。】
現状。
【セルの挿入を行うプログラムまでは組めましたが、4行目以降を常にロックするプログラムを組みましてもセルを挿入すると対応するセルが動いてしまい、3行目にロックがかかってしまい、更新するごとにロックされていないセルが4行目、5行目と動いていきます。
どうすれば常に3行目のみロックを外すことができますでしょうか。】

入力した文
【Sub 更新()
Range("3:3").Insert
Range("a3:f3,h3:l3,n3:r3,t3:x3,z3:ad3,af3:aj3").Interior.ColorIndex = 0
If ActiveSheet.ProtectContents = False Then
Cells.Locked = True
ActiveSheet.Range("$a$34:$f$4").Locked = False
ThisWorkbook.Worksheets("納品ユニフォーム").Protect UserInterfaceOnly:=True
End If

End Sub】
・ツリー全体表示

【81456】[無題]
お礼  やまちゃん  - 20/8/12(水) 10:01 -

引用なし
パスワード
   マナさんありがとうございました。
aうまく使えました。
こういう使い方があったんですね。勉強になりました。
質問の1も再度確認したら大丈夫になり、こちらは自己解決しました。
また何かありましたら質問させて頂きますので、その際は宜しくお願いします。
・ツリー全体表示

【81455】Re:For Next とオートフィルタ
発言  マナ  - 20/8/12(水) 7:51 -

引用なし
パスワード
   ▼やまちゃん さん:

>2.オートフィルタ―を列が1つずれる毎に同列のオートフィルタ―をかけ直したい。
>Sheets("Sheet1").Range("$O$11:$AG$74").AutoFilter Field:=1, Criteria1:=○
>この記述のAutoFilter Field:=1←この部分は一回ずつField:=2、Field:=3 …
>なんてナンセンスですよね?

aを利用できないですか
・ツリー全体表示

【81454】For Next とオートフィルタ
質問  やまちゃん  - 20/8/12(水) 1:31 -

引用なし
パスワード
   こんばんは。VBA初心者です。
詳しく教えていただけると助かります。

店舗別の発注書を自動作成したい。

Sheet1のセルA:Iの列には一定のフォーマット(全商品アイテム)があり、同一シート内のL:AGの列には店舗一覧とその店舗に対応した商品がO12:AG12以下の行に○、×、空白などの情報が入っています。

O9:AG9に記載している店舗コードを1店舗づつH6 に転記すると同時にオートフィルタ―で○だけを表示したら、最後に店舗コードに対応した店舗名がH7に記載されているので、その店舗名で保存。
これをAG列に記載の店舗コードまで19店舗分繰り返す。


For a = 14 To 32 Step 1  

 
  Sheets("Sheet1").Select
 
  Range("H6").Value = Cells(9, a + 1)
 
  Sheets("Sheet1").Range("$O$11:$AG$74").AutoFilter Field:=1, Criteria1:=○

   ・
   ・ (省略)
   ・

Application.Dialogs(xlDialogSaveAs).Show Arg1:=Range("H7").Value
  
   
  Sheets("Sheet1").Range("$O$11:$AG$74").AutoFilter

Next a


ここからが質問です。

1.上記のように記述してみたところ、途中までは次々の店舗コードを呼んでくれるのですが、4〜5店舗過ぎたあたりから次の店舗コードを読み取れなくなりました。
何故?どこがおかしいのでしょうか?

2.オートフィルタ―を列が1つずれる毎に同列のオートフィルタ―をかけ直したい。
Sheets("Sheet1").Range("$O$11:$AG$74").AutoFilter Field:=1, Criteria1:=○
この記述のAutoFilter Field:=1←この部分は一回ずつField:=2、Field:=3 …
なんてナンセンスですよね?
もっと画期的な方法があればご教授願います。

以上宜しくお願いします。
・ツリー全体表示

【81453】Re:ジャンプ先を印刷範囲に設定→印刷 ...
お礼  初心者  - 20/8/11(火) 10:11 -

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

>「選択した部分を印刷」でできたのですか。
>できたのなら、その操作を「マクロの記録」するだけです。

なるほど!!そういうことですね。
ありがとうございました!!
・ツリー全体表示

【81452】Re:複数の値からある合計に一致するすべ...
お礼  ゆきぼ  - 20/8/9(日) 21:39 -

引用なし
パスワード
   ▼γ さん:
>参考サイトの記事のなかでも紹介されていますが、
>hatenaさん作成になるこちらの記事が参考になると思います。
> ht tps://hatenachips.blog.fc2.com/blog-entry-430.html
>
>アルゴリズムの説明のほか、実際に動作するxlsmファイルも
>提供されていますので、試行することができます。

参考サイトのご紹介ありがとうございます。
早速、サイトを見させていただきます。
・ツリー全体表示

【81451】Re:複数の値からある合計に一致するすべ...
お礼  ゆきぼ  - 20/8/9(日) 21:14 -

引用なし
パスワード
   ▼マナ さん:
アドバイスをありがとうございます。
海外のサイトなども見てみたいと思います。
ありがとうございました。
・ツリー全体表示

【81450】Re:ジャンプ先を印刷範囲に設定→印刷 ...
発言  マナ  - 20/8/7(金) 22:01 -

引用なし
パスワード
   ▼初心者 さん:

>複数人が使えるように、ボタンにしておきたく、
>「選択した部分を印刷」とせずともその範囲のみを印刷出来るようにしたいのです

「選択した部分を印刷」でできたのですか。
できたのなら、その操作を「マクロの記録」するだけです。
・ツリー全体表示

【81449】Re:ジャンプ先を印刷範囲に設定→印刷 ...
質問  初心者  - 20/8/7(金) 14:19 -

引用なし
パスワード
   ▼マナ さん:
>▼初心者 さん:
>
>>マクロの記録の印刷から、編集で書き足していました。
>
>印刷するときに、「選択した部分を印刷」というのを選んでください。
>それで記録したものが、そのまま使えるはずです。書き足し不要です。

複数人が使えるように、ボタンにしておきたく、
「選択した部分を印刷」とせずともその範囲のみを印刷出来るようにしたいのですが、
これは難しいでしょうか?
・ツリー全体表示

【81448】Re:ジャンプ先を印刷範囲に設定→印刷 ...
発言  マナ  - 20/8/6(木) 20:18 -

引用なし
パスワード
   ▼初心者 さん:

>マクロの記録の印刷から、編集で書き足していました。

印刷するときに、「選択した部分を印刷」というのを選んでください。
それで記録したものが、そのまま使えるはずです。書き足し不要です。
・ツリー全体表示

【81447】Re:表へ転記で途中から上書きを繰り返し...
発言  γ  - 20/8/6(木) 16:49 -

引用なし
パスワード
   ▼もち さん:
>登録した情報を別シートの一覧表に転記していき、一行目から順に100個転記したら101個目からはまた一行目へ戻り上書きしていくものを作りたいです。
>現在、100個転記するものは作ることができましたが、空欄チェックを条件にすると上書きはできないので、なにかいい方法がないかと考えています。

意味が取れないのですが、
100個書いた後で
次の100個はどこに書きたいのですか?

上書きが不可なら、その右の列というのが自然の発想ですが、
どうなんですか。
相手は機械なので、
ちゃんと指示しないと忖度してはくれませんよ。
・ツリー全体表示

【81446】表へ転記で途中から上書きを繰り返したい
質問  もち  - 20/8/6(木) 12:58 -

引用なし
パスワード
   登録した情報を別シートの一覧表に転記していき、一行目から順に100個転記したら101個目からはまた一行目へ戻り上書きしていくものを作りたいです。

現在、100個転記するものは作ることができましたが、空欄チェックを条件にすると上書きはできないので、なにかいい方法がないかと考えています。
初学者なため思いつかず… 知識を与えていただきたいです…!

※表が2行目から始まるのでiの初期値は2にしています。

Dim i
For i = 2 To 101
  If Sheets("表").Range("A" & i).Value = "" Then
   Sheets("表").Range("A" & i).Value = Sheets("入力").Range("C2").Value
   Sheets("表").Range("B" & i).Value = Sheets("入力").Range("C3").Value
   Sheets("表").Range("C" & i).Value = Sheets("入力").Range("C4").Value
   Exit For
 End If
Next i
・ツリー全体表示

【81445】Re:ジャンプ先を印刷範囲に設定→印刷 ...
質問  初心者  - 20/8/6(木) 9:14 -

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

度々ありがとうございます。

>1)そのマクロをここに貼り付けてください
>2)そのマクロは、どこに記述しましたか

そのマクロはうまくいかず、削除してしまっているのですが、
マクロの記録の印刷から、編集で書き足していました。
その時に、セル番地が指定された記述になってしまったように思いました。


>3)印刷範囲(ジャンプ先)は、複数シートにあるのか
>  それとも1つのシート内に複数箇所なのでしょうか

シートは複数ありますが、
ジャンプ元とジャンプ先はそれぞれ同一シートの中に複数個所あります。
・ツリー全体表示

【81444】Re:ジャンプ先を印刷範囲に設定→印刷 ...
発言  マナ  - 20/8/5(水) 20:56 -

引用なし
パスワード
   ▼初心者 さん:

>何か間違えたようで、同じページばかり印刷されてしまったので

1)そのマクロをここに貼り付けてください
2)そのマクロは、どこに記述しましたか
3)印刷範囲(ジャンプ先)は、複数シートにあるのか
  それとも1つのシート内に複数箇所なのでしょうか


 
・ツリー全体表示

【81443】Re:ジャンプ先を印刷範囲に設定→印刷 ...
質問  初心者  - 20/8/5(水) 11:35 -

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

ありがとうございます。

>>そうすると、名前の定義された1番のセル範囲(出力したい領収書の範囲)にジャンプします。
>
>ここは、ハイパーリンク関数でしょうか??

そうです。ここはハイパーリンクの関数です。


>印刷範囲に設定する必要があるのでしょうか?
>単に、選択範囲を印刷というマクロではだめなのでしょうか。

設定しなくてもそのまま印刷が出来ればそれでいいです。
何か間違えたようで、同じページばかり印刷されてしまったので
都度設定する必要があるのかな、と思ったんです。

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

【81442】Re:ジャンプ先を印刷範囲に設定→印刷 ...
発言  マナ  - 20/8/3(月) 19:04 -

引用なし
パスワード
   ▼初心者 さん:

>そうすると、名前の定義された1番のセル範囲(出力したい領収書の範囲)にジャンプします。

ここは、ハイパーリンク関数でしょうか??


>氏名をクリックしてジャンプするところまでは目で確認したいため手動でいいのですが、その部分を印刷範囲に設定して印刷する。

印刷範囲に設定する必要があるのでしょうか?
単に、選択範囲を印刷というマクロではだめなのでしょうか。
・ツリー全体表示

【81441】Re:XMLの名前空間を親ノードで指定すると...
お礼  あも  - 20/8/3(月) 16:44 -

引用なし
パスワード
   ▼γ さん:
そういった仕様ということでことで、納得いたしました。
また、質問掲示板に関するアドバイスもありがとうございます。
・ツリー全体表示

【81440】ジャンプ先を印刷範囲に設定→印刷 のマ...
質問  初心者  - 20/8/3(月) 11:04 -

引用なし
パスワード
   初心者です。よろしくお願い致します。Excelで作成した領収書になります。
【現状】
それぞれの領収書シートに

1行目 1番の氏名 領収日
2行目 2番の氏名 領収日 と、シートによってこの人数は違いますが

例えば、2番の氏名の横の領収日を見て、日付が入っていたら氏名をクリックします。
そうすると、名前の定義された1番のセル範囲(出力したい領収書の範囲)にジャンプします。

ここで、印刷範囲に設定して印刷するところを手作業でやっています。

【希望】
氏名をクリックしてジャンプするところまでは目で確認したいため手動でいいのですが、その部分を印刷範囲に設定して印刷する。また別の氏名をクリックしたら、そこに飛んで印刷する、という作業をボタンで完結させたいと思っています。

ネットからのコピペでいろいろ試してみたのですが、なかなかうまくいかず、
ご相談させていただきました。

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

【81439】Re:間違いを色であらわすことはできます...
お礼  moro  - 20/8/2(日) 20:08 -

引用なし
パスワード
   ▼γ さん:
数字で試してみたところきちんと動作しました。
修正ありがとうございました。またいろいろ教えて
いただきありがとうございました。


>すべて数値のケースは考慮していませんでした。
>下記の修正を行って、
>書込先のシートの書式を「文字列」にしておけばよいと思います。
>
>Sub main()の
>  '書き込み先のシートをクリアー
>  ws2.UsedRange.Clear
>の下に一行を挿入してください。  
>  ws2.Columns("A:B").NumberFormatLocal = "@"
>
>■なお、相違箇所というものは、ユニークに決まるものではないことに注意が必要です。
>
>どこを共通した箇所と考えるかには、もともと任意性があります。
>例えば、
>ABCBDAB と BDCABA といった比較を考えると、
>(1)
>BCBAが共通部分と考えて、
>ABCBDAB と BDCABA
>~  ~ ~   ~ ~
>が相違点と考えることもできますし、
>(2)
>BDABが共通部分と考えて
>ABCBDAB と BDCABA
>~~~      ~ ~
>が相違点と考えることもできます。
>これらを網羅的に考えるのは別の話になると思います。
>
>■
>現状のもので不都合があれば、ご自分で改善されるか、
>フリーなツールを探されてはいかがでしょうか。
・ツリー全体表示

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