Note that I haven't assigned anything to term, below.
restart:
eq := 2*x + 3*a + y + 7*c = 4*b:
isolate( algsubs( b=a/term, eq), term );
4 a
term = -------------------
2 x + 3 a + y + 7 c
4*a/eq; # check
4 a
------------------- = a/b
2 x + 3 a + y + 7 c
Notice also, that there is another "answer",
isolate( algsubs( a=b*term, eq), term );
4 b - 2 x - y - 7 c
term = -------------------
3 b
and that can also be obtained in other ways, eg,
normal( isolate( expand(eq/b), a/b ) );
4 b - 2 x - y - 7 c
a/b = -------------------
3 b
Which answer do you want? The one that still contains a, or the one that still contains b?