アプリ版:「スタンプのみでお礼する」機能のリリースについて

えー・・っと。初めて質問するものです。
エクセルの関数だけでは 問題が解決できないので、マクロに挑戦してますが、息詰ってしまいました。

はじめに、合計表のB列とJ列に 1と入力されたらaと記入、2と入力されたらb、3と入力されたらcという風にマクロを作成。
ココまではできたのですが・・・。
このB列とJ列。それぞれ、aのシート、bのシート、cのシートと 入力された時点で
それぞれのシートにコピー振分けしたいのですが・・・。うまくいきません。
コピーしたいデータは 合計表のA列からG列のaに変更になってるデータの一行を部分。(合計表は2分割されてる表なので、B列とJ列)

わかりづらいですかね?言いたいことが伝わってるといいのですが・・・。

作ってみたのはこんな感じです。
private sub worksheet_change
dim as integer
for i=2to63
if cells(i,"a").value=1then
cells(i,"b")="a"
endif
next

* b,cも j列の場合も同様につくりました。

dim cl as range
set cl=range("B:B").find(what:="a",lookat:=xlwhole)
if cl=xlwhole then
cells("A:G")=sheet2("asheet")
sheets("合計表").copy before:=cells("A:G")

ここまでで・・わけがわからなくなりパニックになりました。
そもそもできるのか?という謎も生まれ・・・。

よろしく御願いします。

A 回答 (2件)

最初に提示されたコードでは、A列の数値によってB列に文字を入力していますが、補足内容を見る限り、B列の値を文字に変換しているように思えます。

どちらでしょうか?

振り分けは、「エクセル 振り分け」などと検索してみるといろいろ出てきます。ひとつ参考に挙げておきます。多くは一度だけ振り分けるもののようです。動的に更新するためには、元のデータに削除や改変を行うかどうか、更新のタイミング(1セルごと、1行ごと、シート切り替え時、ファイル保存時、ボタンを押したときなど)を検討する必要があります。

ちなみにありがとうポイントは、問題が解決して締め切るときに良回答を選択すると発生します。

参考URL:http://oshiete1.goo.ne.jp/qa2668574.html

この回答への補足

ぉ!同じ質問があったのですね?
探し方がわからずにいたので、助かります。
参考にしてやってみますね?
ありがとうございます。

それと、 
>補足内容を見る限り、B列の値を文字に変換しているように思えます。どちらでしょうか?

補足内容のとおり、B列に1と入力されたら 値をaというように変換です。
説明が下手ですみませんでした。

検索のしかたもためになります。
ほんと、ありがとうございます。

補足日時:2007/03/08 09:21
    • good
    • 0
この回答へのお礼

やっと、なんとかできました。
ありがとうございました。
今後とも、色々学んでいこうと思います。

お礼日時:2007/03/08 15:02

Private Sub Worksheet_Change(ByVal Target As Range)



となっていると思いますが、ここでTargetというのがすでにRange型の変数になっており、変更したセルを示します。これを用いた方が楽です。

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Application.Intersect(Range("A2:A63"), Target) Is Nothing Then Exit Sub '変更セルが対象外のときはコードを実行しない
Select Case Target.Value
Case 1:
Target.offset(, 1).Value = "a"
Case 2:
Target.offset(, 1).Value = "b"
Case 3:
Target.offset(, 1).Value = "c"
End Select
End Sub

振り分け操作は具体例を示していただけないと分かりません。特に二分割のあたりが謎です。

ちなみに、関数でもできることはできます。

この回答への補足

ありがとうポイントってなに?
いまいち・・使い方がわかってないようです。
これで、解決?と判断されたのでしょうか????
謎。

補足日時:2007/03/07 16:17
    • good
    • 0
この回答へのお礼

わぁーぃ!今日は回答はこないかなぁ?って思ってたので
早速の回答うれしいです!ありがとうございます。

試してみます。

それと、やっぱり・・具体例をしないとわかりづらいですよね?
えー・・っと。
  A  B  C  D  E  F  G  H  I  J  K  L  M  N  O
1 k  1  123 456 258 159 214   f  2 259 254 215 653 852
2 g  2                 t  3           
3 r  3                 l  2          
4 a  2                  v 1          
5 h  3                 o 1          
6 y  1                 m 2          
7 z  1                  d 2          
8 u  2                 s 3          
9 w 2             q 3          
10 z 3               x 1          

↑ ↑
*1のときA             *1のときA
*2のときB              *2のときB
*3のときC               *3のときC

*AからGまでの部分のそれぞれ1行ずつ *IからOの部分のそれぞれ1行ずつ

こんな感じなんですがわかりますか?

確認画面でどうしてもずれてしまぅ・・。
わかりますか? H列は 空白で区切りとして使ってます。

よろしくおねがいします。

お礼日時:2007/03/07 12:19

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!